天天看點

Eclipse遠端調試Java應用程式:實用技巧

軟體開發中,調試是不可或缺的一個環節,它可以幫助開發人員提高效率,節省開發時間。在我認為,本地調試是最優選擇,通常情況下,當無法實作本地調試時,我們才會考慮遠端調試。

  有些項目是運作在Linux 作業系統上,而我們大多數項目是在Windows 平台上完成開發的。特别是在投資銀行領域,很多電子交易程式運作在Linux 伺服器上,這會讓開發過程顯得較為繁瑣,因為我們沒法在本地的開發環境中運作這些代碼。

  有時候無論是出于開發還是調試的考慮,我們可以讓項目運作在Windows 平台上,但有時候,一些不可控因素,比如您的項目需要提供開發庫的平台,或者需要一些Linux子產品,Windows平台上無法滿足這些需求,或者您的項目規模太大,無法在Windows 平台上成功運作,由于項目過度依賴一些系統,沒法在Windows 開發平台中建立相同的運作環境。

  這種情況下,我的解決方法是借助模拟的對象來測試項目。當然,有時候通過線程單獨來運作應用程式子產品并不見得是最好的解決方案,特别是您需要在運作時環境下通過調試項目來查找一些子問題,這些方法就會顯得不太實用。

Eclipse遠端調試Java應用程式:實用技巧

  Eclipse為我們提供了最有用的功能,稱為“遠端調試”。借助于遠端調試,您可以在Windows 平台上調試Linux的運作情況,為了提高開發效率,非常有必要了解清楚如何安裝遠端調試,如何在Eclipse中實作遠端調試。

  <b>如何在Eclipse中安裝遠端調試</b>

  1)在Eclipse中安裝Java項目

  2) 選擇項目,在“Run”菜單選項下選擇“Debug Configurations”

Eclipse遠端調試Java應用程式:實用技巧

 <b> Remote debugging with Eclipse 1</b>

  3) 調試配置視窗将會彈出,選擇左邊的“Remote Java Application”圖示,右鍵選擇“New”。

Eclipse遠端調試Java應用程式:實用技巧

  E<b>clipse remote debugging 2</b>

 

 4) 點選“New”以後,Eclipse會為您選中的項目建立遠端Java應用配置。接下來的一步是為遠端調試安裝主機和端口。

Eclipse遠端調試Java應用程式:實用技巧

  <b>Remote debugging in Eclipse 3</b>

  5) 現在輸入主機名和端口,如果你想從Eclipse中關閉運作在Linux平台上的 Java應用程式,請選中<b>"Allow termination of remote VM”</b>複選框。

  6) 在調試之前,確定設定好Java程序的各項調試資訊,同時確定在同一個主機和端口上監聽Java程序,否則Eclipse無法正常建立連系。

  7) 點選“Debug”開始調試主機和端口。

  8)您也可以在<b>"Remote Java Application” </b>中<b>,"Debug Configurations"</b>菜單下選中您的項目,然後點選<b>"DEBUG"。</b>

  <b>為了遠端調試一個Java應用程式,確定JVM的調試選項如下:</b>

  java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y suspend=y -jar stockTradingGUI.jar

  使用Java Debug Wire Protocol (jdwp) protocol ,我們可以讓Java應用程式stockTradingGUI進入調試模式,監聽端口為8001。<b>suspend=y </b>時,Eclipse 将應用程式連接配接到指定調試端口後,應用程式才開始運作。

  有一點非常重要,先運作應用程式,然後連接配接它,否則Eclipse會抛出異常<b>"Failed to connect to remote VM. Connection refused”</b>.

  <b>提示一:</b>在JVM DEBUG參數中,有一個參數叫<b>"suspend",</b>它的取值有兩個,“y”或者“n”,如果您剛開始就想調試的話,将參數設定為<b>"suspend=y",</b>這樣Eclipse會遠端連接配接Java應用程式。

  如果你想先運作項目,然後連接配接Eclipse,那麼可以将參數設定為<b>"suspend=n",</b>這樣的話,Java應用程式會正常運作,之後Eclipse會開始遠端連接配接。

  <b>提示二:</b>使用啟動腳本輸入JVM調試參數,在腳本中使用變量isDebugEnabled或者REMOTE_DEBUG_PORT,當你想遠端調試Java應用程式的時候,可以将這個變量導出。整個操作過程非常簡單,隻需要一次性的安裝即可。

  <b>提示三:如果你得到錯誤提示"Failed to connect to remote VM. Connection refused"或者"Connection refused: connect",那麼可能出現的原因有兩種可能。第一是您的Java項目沒有運作在遠端主機上,第二是輸入端口和主機名有誤,驗證成功後,可以填寫完整的主機名。</b>

  <b>提示四</b>:您也要確定本地Eclipse和遠端Eclipse運作的是相同的代碼庫。<b>使用調試選項"-g"可以編譯代碼,Eclipse可以輕松搜集調試資訊,比如本地變量的調試資訊,預設情況下,使用調試選項“-g”,類檔案可能更大,因為它可能會包含一些調試資訊。</b>

本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/wws5201985/818587,如需轉載請自行聯系原作者