前言
首先,我们要让要让远程服务器支持远程调试功能,在项目启动项上追加特定的 JVM 参数
- 晚于 JDK 1.4.X 版本(最新版本)
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8008
- JDK 1.4.X 版本
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8008
- JDK 1.3.X 或早起版本
-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8008
服务器端配置
JAR包启动项目
nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8008 sto-fullnetwork-recipientinfo-query-service.jar >/dev/null 2>&1 &
Tomcat 容器启动项目
项目部署环境是 Tomcat 7 + Java 7 ,在 catalina.sh中设置 CATALINA_OPTS即可
CATALINA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8008
idea配置
Run===》Edit Configurations...===》点击加号===》Remote===》设置Name,设置远程服务器的Host和Port
Debug调试过程
- 本地项目代码需要和服务器上部署的代码完全一样
- 启动Tomcat,保证服务器程序正常启动
- idea上的设置,Run===》Debug RemoteDebug===》Console上显示,Connected to the target VM, address: ‘IP:8008’, transport: ‘socket’
- 在本地代码相应的位置上打上断点
- 请求远程服务,即可在idea本地代码中debug调试远程代码