Java 5及之后的版本使用如下命令
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar agent-demo-0.0.1-SNAPSHOT.jar
server=y
表明此虚拟机在调试中扮演服务端角色, 另一个值 server=n
, 另一种是客户端
例如使用Idea的 Listen to remote JVM
模式, 一般是使用 Attach to remote JVM
java9之后还得这样
java5之前使用如下命令(不推荐)
- 估计java4的应用应该没有了, 虽然java5及之后的版本也可以使用这个命令, 但是不推荐这个命令, 之前遇到过
-Xdebug
和-Djava.compiler=NONE
一起使用导致启动巨慢的情况, 这是因为这是以解释模式
而不是JIT模式
运行 - 如果想在远程连接成功后 再执行main程序启动, 需要将参数
suspend=n
修改suspend=y
java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n -jar agent-demo-0.0.1-SNAPSHOT.jar