以下談論的是Applet的遠程調試技術,實際上對於其他java程序一樣適用,只需要使用文中參數啓動java程序即可
Java遠程調試方式,兩種方式進行遠程調試
下圖上面的表示是Eclipse配置爲Socket Listen方式,表示主動鏈接調試器
下面的是Socket Attach方式,表示遠程程序正常運行允許調試器連接jvm
1 打開調試配置面板: 菜單(Eclipse):Run-->DebugConfigurations,如圖配置
2 新建一個遠程調試並配置參數
左側新建一個遠程調試
左側Project:源代碼工程
左側ConnectionType:調試方式
左 側Connection Properties:配置與Connection Type相關的調試連接屬性
Connection Type的選擇不同,對應applet端(客戶端)的配置參數不同和整個調試過程的啓動順序的不同。
1) SocketListen方式
1.1 Eclipse:RemoteJava Application
Connection Type: standard (Socket Listen)
Port: 8002
1.2 Java Control Panel:
Runtime Parameters:
-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:8002 //Eclipse程序所在的主機的IP和調試端口
1.3 Run order:
Run Eclipse remotedebug
Run Tomcat server
Access Applet (have some breakout points)
1.4 這種方式遠程調試java或applet,可以從applet一開始運行就進入debug狀態。因爲eclipse首先啓動remotedebug並等待遠程的java vm 去連接。一旦applet啓動運行遇到斷點就會進入debug等待中。
2) Socket Attach 方式
2.1 Eclipse:RemoteJava Application
Connection Type: standard(Socketattach)
Host: localhost (remote client ip)
Port: 8000 (remote client port)
2.2 Java Control Panel:
Runtime Parameters:
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
2.3 Run order:
Run Tomcat server
Access applet
Run Eclipse remotedebug
Access Applet (have some breakout points)
1.4 這種方式遠程調試java或applet,需要等applet運行起來後,才能建立debug連接。然後在設置breakpoint進行調試
Notes: 如果出現無法連接到JVM或debug沒有工作,建議重啓IE或eclipse。
分析原因可能是因爲前一次所用端口已被佔用,需要重啓以解除端口綁定。
MyBox:
-Djava.compiler=NONE
-Xms800M-Xmx1300M -Xdebug -Xnoagent-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n