之前感觉远程调试很神奇,自己在下面试过几次,老是说“Failed to connect to remote VM. Connection refused. Connection refused: connect” 的错误,看了网上的一些介绍,说什么虚拟机呀啥的,越看越迷惑,最后无意中看到了Bory.chan的一篇博客,只要很简单的设置一下,就可以跑通。
在eclipse,export出jar包,放在某目录下,然后再cmd中输入以下命令 :
>java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar test.java
相当于在远程或本机开启了端口
然后再在eclipse,开打远程调试,进入debug模式。
-
-Xdebug
- 启用调试特性。
-
-Xrunjdwp:<sub-options>
- 在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。
从 Java V5 开始,您可以使用 -agentlib:jdwp 选项,而不是 -Xdebug 和 -Xrunjdwp。但如果连接到 V5 以前的 VM,只能选择 -Xdebug 和 -Xrunjdwp。下面简单描述 -Xrunjdwp 子选项。
-
transport
- 这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。
-
server
- 如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。
-
address
- 这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
-
suspend
- 如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。
http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/ 这是IBM的比较权威的调试指南。