2010-03-02 105 views
4

我知道如何在已經存在的機器上遠程調試java應用程序,但有人知道可以從本地工作區啓動的解決方案(例如eclipse) ,將本地類路徑中的任何代碼傳輸到遠程或虛擬機,在那裏執行它並連接遠程調試器,一步到位?我希望某種服務器需要在遠程機器上運行,以接受類文件並執行它們。在遠程或虛擬機上啓動和調試Java應用程序

我曾經對JUnit做過類似的事情,通過RMI將本地測試用例傳遞給遠程機器,並在那裏執行它們,並將結果傳回給我的eclipse。因爲這些測試用例是JUnit測試,所以很容易將它與JUnit-launcher和Eclipse中的工具集成在一起,但是爲了調試整個應用程序,我懷疑它有點複雜。

我想問一下,如果有任何解決方案,或者如果有人已經做到這一點,並指出我在正確的方向。

VMWARE Workstation有類似的東西,但是我在Mac上開發,它在Fusion中不可用。

回答

0

我想你可以使用在Eclipse中執行的ant任務自動執行部署任務。

  1. 對於Java應用程序可能會通過ftp http://ant.apache.org/manual/Tasks/ftp.html複製你的編譯類和使用該目錄中的文件進行掃描,並在調試啓動這些守護程序(可解析罐子的清單)。您也可以將您的Java應用程序「打包」爲J2EE應用程序以便於調試
  2. 對於J2EE應用程序,您可能會看到J2EE服務器的部署功能。
2

這不是說,如果你想調試測試應用程序或別的東西。我將假設它是一個普通的Java應用程序。您可以在遠程虛擬機中設置SMB共享或ftp服務器,然後使用ant任務將所有類文件打包並複製到第二個虛擬機。由於您使用的是mac,因此您可以使用ssh連接並使用調試標誌啓動java應用程序。然後,這將是一個兩步過程:

  • Ant腳本
    • 包所有的編譯代碼
    • 複製編譯後的代碼(FTP,SCP,SMB,或諸如此類的東西)
    • 與ssh連接並啓動帶有調試選項的應用程序。您可以使用該選項等待服務器等待傳入連接。

然後在Eclipse中,你將有一個遠程調試配置,將連接到遠程計算機中指定的代碼。

要做到這一步,可以通過編寫一個擴展Debug Launcher的小型Eclipse插件來完成。您可以擴展「遠程調試啓動」以執行這些自定義複製代碼。

+0

謝謝你的洞察力,這將是一個好的開始。是的,我正在談論一個非常標準(大)的Java應用程序。任何想法如何訪問eclipse在ant腳本中爲項目內部構建的類路徑?沒有看到可以使用的變量中的任何內容。 我可以讀取所選項目的.classpath文件,但是如何找到依賴項/引用的項目等?也許我應該使用maven生成完整的類路徑作爲文件(在編譯時),並使用此文件作爲傳輸到遠程機器的基礎。 – 2010-03-02 15:02:54

相關問題