2011-03-29 44 views
3

我試圖找出如何在調試時使用我的編譯系統啓用代碼的熱插拔,並且即將乾涸。在本地機器上用日食和遠程調試的Java Hotswap

我有一個Ant構建與調試目標,如下所示:

<target name="debug_dev" depends="compile" 
    description="Runs development version with the debugger."> 
    <java classname="applets.TabHandler" fork="true" dir="build"> 
     <jvmarg value="-Xdebug" /> 
     <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" /> 
     <classpath refid="compile_classpath" /> 
    </java> 
</target> 

然後我用Eclipse中的遠程調試選項連接到端口8000的調試工作正常,但就像我不能編輯代碼在使用Ant之前,我能夠做到。我知道有可能使用JBoss,Tomcat和其他情況來實現熱插拔,但是我只是在本地使用JVM調用來運行我的程序,就像您從上面看到的那樣。

有誰知道這是否可以用我的設置?

謝謝!

回答

2

Java Ant熱交換工作得很好。 Eclipse中不需要這樣做。

http://code.google.com/p/hotswap/

+0

我會很快在我的項目中嘗試這個。感謝您的提醒。有一段時間我正在從Ant運行調試,但我又回到了Eclipse調試啓動階段,所以我不知道這是否會與調試方式相關聯。如果它不起作用,我將去Ant調試啓動。 – Eric 2012-04-02 16:29:29

+0

今天我試了一下,它的工作原理。我通過Ant任務觸發JVM的調試實例。然後,我通過遠程調試配置來觸發Eclipse調試客戶端,其目標是調試Ant任務中使用的相同端口號。然後,我根據andersonbd1上面公佈的熱交換項目頁面上提供的示例,通過Ant任務觸發熱交換。優秀!不幸的是,當我運行熱補丁任務時出現錯誤:「BUILD FAILED C:\ Users \ myself \ workspace \ my_project \ build.xml:758:java.net.ConnectException:Connection refused:connect 「 – Eric 2012-04-05 21:22:06

+0

這個解決方案對我來說很重要,因爲我在Eclipse的內置Ant中有一個單獨的編譯過程,因此刪除了Eclipse的熱切換功能。這個熱切換的Ant任務正是我所需要的。如果只有我可以從Ant觸發Eclipse的調試客戶端,我可以將調試啓動下拉到一次點擊來觸發Ant任務,並且當我想編譯&hotswap時再次點擊。 – Eric 2012-04-05 21:27:01

0

讓Ant脫離您的調試工作流程。使用Ant來打包最終產品或持續集成,但對於迭代開發和調試,直接從Eclipse編譯和運行代碼。你會得到熱門等等。

+0

好吧,我明白了。謝謝。我必須配置Eclipse以正確運行我的Ant編譯目標,但看起來很好。儘可能放棄Eclipse的構建相關功能似乎更加清晰。如果這是獲得熱烈歡迎的唯一方法,那麼我會努力。 – Eric 2011-03-29 20:05:31

+0

任何時候當您嘗試將Ant或Maven嵌入到Eclipse迭代開發和調試工作流程中時,您都會破壞Eclipse中內置的優化及其各種插件,從而儘可能快地完成這些工作流程。不要打你的工具。讓他們讓你的生活更輕鬆。 – 2011-03-29 22:39:00

相關問題