以Debug形式启动Java程序,并通过eclipse进行remote debug。
适用场合:
1.程序运行环境不再本机。
2.程序太大,不想再eclipse里运行。
对于eclipse有两种连接器
socket attach
socket listen
如果是本机调试的话,哪一种都可以。
如果是远程调试的话,看看哪个机子配置好,可用资源多,如果是本机的话,使用socket listen连接器,如果是远程机子的话,使用socket attach
两种连接器在使用的时候也有所不同,
对于socket attach,由于远程是jvm主机,所以要先启动远程程序
启动参数如下
例如
这里要注意的是suspend要设为y,不然程序不会等你和它连接就会执行下去了。
对于socket listen, 由于本机是jvm主机,所以要先启动eclipse的调试程序。
然后再启动远程程序
启动参数如下
更加详细的介绍请参考
[url]http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/index.html[/url]
这篇介绍也挺不错
[url]http://ralf0131.blogbus.com/logs/37064505.html[/url]
适用场合:
1.程序运行环境不再本机。
2.程序太大,不想再eclipse里运行。
对于eclipse有两种连接器
socket attach
socket listen
如果是本机调试的话,哪一种都可以。
如果是远程调试的话,看看哪个机子配置好,可用资源多,如果是本机的话,使用socket listen连接器,如果是远程机子的话,使用socket attach
两种连接器在使用的时候也有所不同,
对于socket attach,由于远程是jvm主机,所以要先启动远程程序
启动参数如下
-agentlib:jdwp=transport=dt_socket,address=8001,server=y,suspend=y
例如
java -agentlib:jdwp=transport=dt_socket,address=8001,server=y,suspend=y com.javaeye.BatchMain
这里要注意的是suspend要设为y,不然程序不会等你和它连接就会执行下去了。
对于socket listen, 由于本机是jvm主机,所以要先启动eclipse的调试程序。
然后再启动远程程序
启动参数如下
-agentlib:jdwp=transport=dt_socket,address=192.168.0.5:8001,server=n,suspend=n
更加详细的介绍请参考
[url]http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/index.html[/url]
这篇介绍也挺不错
[url]http://ralf0131.blogbus.com/logs/37064505.html[/url]
本文介绍了如何使用Eclipse进行Java程序的远程调试,包括在不同场景下选择合适的连接器(socketlisten/socketattach)以及设置相应的启动参数。适用于程序运行环境不在本地或程序体积过大不适合直接在IDE中运行的情况。

被折叠的 条评论
为什么被折叠?



