今天同事问我怎么远程调试 java 程序。我不会,那马上搜索看看。在被高度的程序中加个数据就行。然后 eclipse 调试时指定端口就行,太方便了。
比如,现在有一个代码:
把这个java 导出为 remoting-debug.jar 上传到目标机器(当然本地也行)。然后在目标机器上运行:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar remoting-debug.jar
会出现:Listening for transport dt_socket at address: 8000
程序正在等待调试。
右击 eclipse 中的 RemotingDebug 代码 -> Debug As ... -> Debug configurations ... 中,双击 Remote Java Application,如:
192.168.1.100 是本地虚拟机。然后就可以方便调试了,太方便了。
延伸:Eclipse 远程调试 Tomcat 程序。
在 tomcat 6 中可以在 startup.bat 尾加 jpda,如下:
set JPDA_ADDRESS=8017
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
如果不要 set JPDA_ADDRESS=8017 也可以,这样就会默认的 8000 端口。
相关词语:
JDI — Java 调试接口(Java Debug Interface)
JDT— Java 开发工具(Java Development Tools)
JDWP— Java 调试网络协议(Java Debug Wire Protocol)
JPDA— Java 平台调试器架构(Java Platform Debugger Architecture)
JVM— Java 虚拟机(Java Virtual Machine)
JVMDI— JVM 调试接口(JVM Debug Interface)
JVMTI— JVM 工具接口(JVM Tool Interface)