我有一个在linux机器上运行的java应用程序 . 我使用以下代码运行java应用程序:
java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
我在这台Linux机器上为TCP打开了端口4000 . 我在Windows XP机器上使用eclipse并尝试连接到此应用程序 . 我也在windows中打开了端口 .
两台机器都在局域网上,但我似乎无法将调试器连接到Java应用程序 . 我究竟做错了什么?
5 回答
Edit: 我注意到有些人在这里剪切和粘贴调用 . 我最初给出的答案仅与OP相关 . 这是一种更现代的调用方式(包括使用更传统的8000端口):
原始答案如下 .
试试这个:
这里有两点:
runjdwp
选项中没有空格 .选项位于类名之前 . 类名后面的任何参数都是程序的参数!
对于JDK 1.3或更早版本:
对于JDK 1.4
对于较新的JDK:
请根据您的需要更改端口号 .
来自java technotes
还有一点需要注意,从JVM Tool interface documentation:
脚步:
使用上面的帖子中所述的调试选项启动远程Java应用程序 .
通过指定主机和端口配置Eclipse以进行远程调试 .
在Eclipse中启动远程调试并等待连接成功 .
设置断点和调试 .
如果你想从应用程序启动调试使用suspend = y,这将使远程应用程序暂停,直到你从eclipse连接 .
有关详细信息,请参阅Step by Step guide on Java remote debugging .
这是您应该如何设置Eclipse Debugger进行远程调试:
Eclipse Settings:
1.单击“运行”按钮
2.选择调试配置
3.选择“远程Java应用程序”
4.新配置
名称:GatewayPortalProject
项目:GatewayPortal-portlet
连接类型:套接字连接
连接属性:i)localhost ii)8787
For JBoss:
1.按如下方式更改vm中的
/path/toJboss/jboss-eap-6.1/bin/standalone.conf
:删除#:取消注释以下行:For Tomcat :
在 catalina.bat 文件中:
步骤1:
第2步:
第3步:从命令提示符运行Tomcat,如下所示:
然后,您需要在要调试的Java类中设置 breakpoints .
调试的最佳选择是创建日志和分析日志 . 但在某些情况下,我们需要调试部署在服务器上的Web应用程序 .
见Remotely debug a java web application链接 . 这里描述了完整的远程调试流程 . 希望它会有所帮助 .