java代码如何调试 java怎么调试( 二 )


1.1 主动连接调试
首先需要远程服务配置启动脚本:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
如果是启动jar包,指令:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar
这里-Xdebug是通知JVM工作在DEBUG模式下,-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境 。
transport是监听Socket端口连接方式(也可以dt_shmem共享内存方式 , 但限于windows机器,并且服务提供端和调试端只能位于同一台机) 。
【java代码如何调试 java怎么调试】server=y表示当前是调试服务端,=n表示当前是调试客户端 。suspend=n表示启动时不中断(如果启动时中断,一般用于调试启动不了的问题) 。
address=8000表示本地监听8000端口 。
远程服务(tomcat/jboss)启动成功后,本地Eclipse对需要调试的地方打上断点 , 
然后项目右键启动远程调试:Debug as-Debug Configurations-Remote Java Application 。
Host为远程主机IP,Port为远程监听调试端口,Connection Type为:Standard(Socket Attach),
点击Debug,然后打断点,远程服务运行到断点处本地就会中断 , 然后进行调试 。
1.2被动连接调试
首先需要Eclipse配置监听,如主动连接调试的Eclipse配置图片,Connection Type选择:
Standard(Socket Listen),配置本地监听端口,比如默认8000 。点击Debug开始等待远程连接调试 。
然后配置远程服务启动脚本:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y"
如果是调试jar包,指令:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y -jar remoting-debug.jar
参数含义和主动连接调试一样,只是这里suspend=y表示启动时就中断,需要连接本地IDE调试启动 。
address=ip:port , ip需要修改为本地的对外IP 。
这样远程项目启动时就连接到本地,方便调试项目启动不了的问题 。
关于java代码如何调试和java怎么调试的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

推荐阅读