经常遇到需要调试服务器 jar 包的场景,比如部署了一个 jar 包到远程服务器,突然有个接口异常,在没有自动化部署支持的情况下,需要手动在本地启动项目,调试完毕程序后重新打包,部署到服务器上面。一套操作下来,繁琐而复杂,今天来说说如何在 idea 调试远程部署的 jar。
找到 Edit Configurations,新增一个 Remote JVM Debug 模块
填写远程 IP 和端口,我这里是 jar 包部署在服务器,所以写服务器 IP 和程序端口
# 启动方式一
$ nohup java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -jar xxxxxx.jar &
# 启动方式二
$ java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -cp xxxxxx.jar com.xxx.xxx
启动完成以后,在需要排查的模块打上断点,程序在运行到相关位置的时候会自动停止。 PS : 建议在排查问题的时候持续打印日志(tail -f log.txt),可以少踩很多坑。