Java通过命令行进行远程debug所需参数
-
jdk Version >= 9
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
-
5 <= jdk Version <= 8
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
-
jdk Version = 1.4
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
-
jdk Version <= 1.3
-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
- suspend=y表示阻塞,等待调试工具连接后再运行main方法;suspend=n表示不阻塞,执行完main方法
- address=5005设置debug启动的端口
示例:
java 参数 全限定类名
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 com.aksr.demo.Main
or
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 spring-boot-demo-0.0.1-SNAPSHOT.jar
注意:参数一定要在全限定类名之前,否则debug不生效
使用IDEA进行远程调试
- linux服务器上执行debug命令启动项目
- idea打开项目,点击Edit Configurations
- 点击"+"添加图标,并搜索Remote
- 选择远程配置的jdk版本以及调试端口,然后确定
- 添加断点,点击debug启动本地项目