以下谈论的是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