1、IDEA新建远程调试任务

Run/Debug Configurations点击+增加Remote

Dubugger mode 选项:

  • Attach to remote JVM:代表连接方
  • Listen to remote JVM:代表监听方

Debugger mode保持默认选项Attach to remote JVM,输入远程服务器的Host以及端口Port(此端口需对外开放),此时,下方会生成对应的Jar启动参数。复制此参数:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7739

2、使用特定JVM参数运行服务端代码

将上述参数在启动Jar命令时加入,例如:

原启动命令:

java -jar xxx.jar

现启动命令:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7739 -jar xxx.jar

3、启动调试

以上命令启动Jar时,会在日志里打印如下语句:

Listening for transport dt_socket at address: 7739

待项目启动完毕,启动IDEA的DBEUG模式(此时也只能启动此模式),会在日志里打印如下语句:

Connected to the target VM, address: 'xx.xx.x.xxx:7739', transport: 'socket'

然后在需要调试的方法内打上断点即可。

最后

调试完成之后,记得将上述JVM参数去除掉之后重新发布,防范开放远程调试端口可能带来的安全风险。