java程序远程debug的操作步骤:打包,上传,启动 ,配置,调试
1.程序打包:
例如maven打包:clean package -Dmaven.test.skip=true -Pdev
2.上传:
rz命令,将打好的程序包上传至linux服务器上
3.启动:
采用如下命令启动上传到服务器的程序:
java -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8199 -cp jpda.jar {main方法所在类的全路径}
tomcat启动:
1.Linxu系统: apach/bin/startup.sh开始处中增加如下内容:
declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"
或将apach/bin/startup.sh最后一行:
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
修改成:exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
2.Windows系统: apach/bin/startup.bat开始处中增加如下内容:
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788
3.启动tomcat:startup.sh jpda start
4.查看指定端口是否启动:netstat -an | grep 8000
结果:tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
4.配置:
右键debug as >> debug Configurations >> 选中 Remote Java Application >> 点击左上角的new launch configurations 图标 >> 右边的project框中选择刚才打包的项目 >> host:远程服务器地址,也就是上面上传的服务器IP >> port:上面启动命令中的address
5.调试/debug:
然后启动这个configuration,则会连接到这个端口,如上配置完后调试开始了,首先,在eclipse中启动上面配置好的debug,设好断点,然后,访问刚才上传到服务器的项目,就可以像本地debug一样的操作了.
注意: eclipse中的项目要与上传到服务器的项目保持一致(完全一样),否则断点会偏离
注意访问的是上传到服务器上面的项目,不是访问本地项目,只是断点设在本地项目中.
此时再查看端口监听IP,会发现已经不是0.0.0.0了!