本地
ide 工具栏中 Run —> Edit Configurations.
选择左侧 + 号,选择 Remote,
修改name,
修改Host地址localhost 到远程端 192.168.1.102,自己项目启动到那个地址就填那个
修改Post,也可用默认5005
根据jdk版本选择command line arguments for runing remote JVM ,默认5-8
点击Apply即可;
远端启动之后,点击debug运行即可
远程端
在远程服务启动的时候 运行SringBoot时 加上
1 | -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 |
例如:
1 | java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 springboot-test-1.0-SNAPSHOT.jar |
由此配置完成,可本地调试远程运行的代码了
注意:本地代码和远程服务器上的类文件相同
原理
Java 程序是运行在Java 虚拟机(JVM )上的,具有良好跨平台性,
因为Java程序统一以字节码的形式在JVM中运行,不同平台的虚拟机都统一使用这种相同的程序存储格式。
因为都是类字节码文件,只要本地代码和远程服务器上的类文件相同,两个JVM通过调试协议进行通信(例如通过插座在同一个端口进行通信),
另外需要注意的时,被调试的服务器需要开启调试模式,服务器端的代码和本地代码必须保持一致,则会造成断点无法进入的问题。
可能出现链接不通情况问题解决
1.检查服务器防火墙,有可能防火墙未开放
2.将 suspend=n 修改为 suspend=y 不启动远程调试,不启动项目,运行远端之后,再运行本地调试,就可以了
一辈子很短,努力的做好两件事就好:
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱。