- IDEA: IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。
远程Tomcat配置:
jdk9+ 地址参数采用 address=*:5005
方案一:
在./bin/catalina.sh 中添加 address 调试端口 5005
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" //jdk5-8
或者是
JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,address=5005,suspend=n,server=y"
方案二:
修改./bin/startup.sh,在最后一行exec语句中添加 jpda
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
监听的端口可以在./bin/catalina.sh中修改
if [ -z "$JPDA_ADDRESS" ]; then
JPDA_ADDRESS="0.0.0.0:5005"
重启服务即可
jar 启动添加参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 //jdk5-8
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 //jdk9+
- transport 指定运行的被调试应用和调试者之间的通信协议,它由几个可选值: dt_socket:主要的方式,采用 socket 方式连接 dt_shmem:采用共享内存方式连接,仅支持 Windows 平台(暂未验证)
- server 当前应用作为调试服务端还是客户端,默认为 n。 如果你想将当前应用作为被调试应用,设置该值为 y;如果你想将当前应用作为客户端,作为调试的发起者,设置该值为 n。
- suspend 当前应用启动后,是否阻塞应用直到被连接,默认值为 y。 在大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y 的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。
- address 暴露的调试连接端口,默认值为 8000。
- onthrow 当程序抛出设定异常时,中断调试。
- onuncaught 当程序抛出未捕获异常时,是否中断调试,默认值为 n。
- launch 当调试中断时,执行的程序。
- timeout 该参数限定为 java -agentlib:jdwp=… 可用,单位为毫秒ms。 当 suspend = y 时,该值表示等待连接的超时;当 suspend = n 时,该值表示连接后的使用超时。
图文详细请见: 使用idea 调试远程tomcat项目