2018.11.01
前言
Tomcat的远程调试模式是个常用且好用的功能,一旦项目部署到远程服务器上时(比如sit环境),就可以通过远程调试模式打断点进行debug。本文翻译自一技术博客1。
方法
设置JVM启动命令参数就可以为Tomcat开启远程调试模式,可以通过JPDA_OPTS
、CATALINA_OPTS
或JAVA_OPTS
来设置。但一般不推荐设置JAVA_OPTS
,因为它会影响到JVM里的所有应用,而CATALINA_OPTS
仅对Tomcat有效。
方法一:JPDA_OPTS
在CATALINA_HOME/bin目录下新建一个setenv.sh(Linux)或setenv.bat(Windows),添加如下内容:
# Linux
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
# Windows
set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
一般建议采用setenv.*文件来设置额外的配置,而不是直接写进catalina.*中,而setenv.*文件会被Tomat自动读取。启动Tomcat:
<CATALINA_HOME>/bin/catalina.sh jpda start
方法二(建议):CATALINA_OPTS
类似地,新建setenv.*文件:
# Linux
export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
# Windows
set CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
Old-fashioned方法
下面也是常见的参数配置,但它适用于Java 5.0之前的版本;上述配置则适用于Java 5.0及之后的版本。所以不推荐使用。
# 旧的配置方法
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=1043, suspend=n