部署jar包
虚拟机ip为192.168.40.100 
jar包启动参数
1.启动参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4000
nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4000 demo-remote-debug-0.0.1-SNAPSHOT.jar > main.log 2>&1 &
参数说明
- jdwp:java debug wire protocol
- transport=dt_socket:以socket协议进行通信
- server=y:y表示当前是调试服务端,n表示当前是调试客户端
- suspend=n:表示启动时不中断,一般用于设置主动连接,suspend=y表示启动时就进入调试模式,一般用于被动连接。
- address=4000:通信端口是4000
启动后可以看到监听的端口:4000 
idea配置
1.配置  2.配置说明
- Debugger mode:
attach:启动远程项目之后,然后才可以启动本地项目进行debug调试 listen:在远程项目启动之前就可以启动本地项目进行debug调试 - Transport:socket协议进行通信
- Host:远程机器IP
- Port:远程调试端口号(和项目启动时配置的得一致,我这里是4000)
- JDK:选择项目对应版本的JDK
- Command line arguments for remote JVM:根据以上配置生成的jar包启动参数
- Use module classpath:远程服务对应的本地代码路径
调试
1.启动debug  2.访问项目  3.进入断点  完成!
|