祝我家阿美女生节快乐。
SpringBoot开启远程Debug方式
运行指令:
java -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 -jar xxxx-1.0-SNAPSHOT.jar
主要虚拟机参数:
-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899
参数解释
-server: 虚拟机的一种启动模式,想比如client模式,具有更高的性能,但是启动速度不如client模式。
-Xdebug: 启用调试。
-Xnoagent: 禁用默认sun.tools.debug调试器。
-Djava.compiler=NONE: 禁止JIT,因为JIT是以class的所有字节码为对象的,而我们debug一般只需要执行其中的一段逻辑即可,所以一般我们都会禁止他。
-Xrunjdwp: 加载JDWP的JPDA参考执行实例。
transport: 定义远程VM和本地项目之间的通讯方式。
dt_socket: 套接字传输。
server=y/n: 远程VM是否需要作为调试服务器执行。
suspend=y/n: 如果suspend=y,则远程VM不会启动直到有一个远程debug连接到VM上。
address=${port}: 远程VM提供的调试连接端口号,客户端用来连接远程VM。
其他
如果是使用tomcat容器,可以直接使用jpda start方式启动远程debug。