java 远程调试
调试对于排查 java 各种异常问题非常重要,相信本地调试大家都很熟悉,今天分享一下如何开启远程调试。
如果需要编译.java文件执行命令javac,生成.class文件件
1
javac SynchronizedStudy.java
执行编译过后的.class文件
如果当前类有包路径到包的根路径下执行
1
java com.xxx.xx.SynchronizedStudy
如果当前类没有包直接执行
1
java SynchronizedStudy
如果要启动远程 debug 端口
如果执行 java 文件
1
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=5005 com.yefan.study.SynchronizedStudy
如果执行 jar 文件
1
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=5005 -jar SynchronizedStudy.jar
启动成功会显示如下
Listening for transport dt_socket at address: 5005
### 远程调试命令参数说明
**-Xdebug:** 启用调试特性。
**-Xrunjdwp:** 在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。
**transport:** 这里通常使用套接字传输。
**server:** 如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。
**address:** 这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
**suspend:**如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。如果值为 n,没有调试器连接则继续执行