在本地开发过程中,对代码进行 Debug 能逐行对代码逻辑进行调试,方便排查问题,但是当代码发布到测试环境时,如果运行过程中出现异常,仅仅依靠日志来排查问题的话,会比较耗时,经常由于日志不全等原因而不能快速准确定位问题,而通过对 JAVA 代码进行远程 Debug 能很好的解决这个问题

本地代码与远程代码需要保持一致

1. 远程应用启动命令

nohup java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar xieZhongCrmAPI-1.0-SNAPSHOT.jar 1>/dev/null 2>&1 &

-Xdebug:通知 JVM 在 Debug 模式下工作
-Xrunjdwp:通知 JVM 使用(Java Debug Wire Protocol)来运行调试环境,参数同时有一系列的调试选项
transport:用于监听 Socket 端口连接方式,常用的 dt_socket 表示使用 socket 连接
server:是否支持在 Server 模式的 VM 中,=y 表示当前调试服务端,=n 表示当前调试客户端
suspend:是否在调试客户端建立起来后,再执行 JVM,=n 表示启动时不中断
address:调试服务器的端口号,客户端用来连接服务器的端口号

2. 开启端口

firewall-cmd --list-ports # 查看已经开放的端口
firewall-cmd --zone=public --add-port=5005/tcp --permanent # 开启端口
firewall-cmd --reload # 重载入

3. 配置IDEA后启动

idearemotedebug1.png

idearemotedebug2.png

idearemotedebug3.png

Q.E.D.


盛年不重来,一日难再晨。