JDK远程调试分为主动模式和被动模式,主动模式为应用配置启动端口,IDE远程连接该端口进行调试,如我们对服务器端部署的应用程序进行调试时,使用该方式;被动模式为IDE启动监听端口,服务器端配置远程IDE的IP和端口,启动时连接该端口,进行调试,主要用于JDK启动时的一些调试功能。
具体配置如下:
主动模式:
配置JAVA启动参数:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8960,suspend=n"
-Xdebug:DEBUG模式
-Xrunjdwp:使用java debug wire protocol调试运行环境
server:y表示以服务端方式调试,n表示以客户端方式调试
transport:调试连接方式,dt_socket(socket方式)
suspend:n表示启动时不中断;y启动时中断,一般用于调试启动不了的问题
address:监听调试端口
IDE配置:Debugger mode选择Attach to remote JVM
被动模式:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:server=n,transport=dt_socket,address=127.0.0.1:8960,suspend=y"
参数含义见主动模式,差别:
address填写远程IDE的IP和端口
IDE配置:Debugger mode选择Listen to remote JVM