软件开发中很多时候我们需要远程进行Debug调试,java 可以以调试模式启动,启动后可以使用 jdb 对程序进行调试。以调试模式启动,需要加入以下参数:
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp
下面是这些参数的意思:
-XDebug               启用调试。 
-Xnoagent             禁用默认sun.tools.debug调试器。 
-Djava.compiler=NONE  禁止 JIT 编译器的加载。 
-Xrunjdwp             加载JDWP的JPDA参考执行实例。 
transport             用于在调试程序和 VM 使用的进程之间通讯。 
dt_socket             套接字传输。 
dt_shmem              共享内存传输,仅限于 Windows。 
server=y/n            VM 是否需要作为调试服务器执行。 
address=4000      调试服务器的端口号,客户端用来连接服务器的端口号。 
suspend=y/n           是否在调试客户端建立连接之后启动 VM 
Tomcat的设置:
可以在对应tomcat实例CATALINA_BASE / bin下的setenv.sh文件中设置,如果没有该文件先创建该脚本文件然后在其中设置jvm参数
export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
下面讨论下spring-boot 对这方面的支持
spring-boot 从 1.3.0 添加了spring-boot-devtools 模块
http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/
