java测试远程调试(转载)

Linux setenv.sh
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
Windows setenv.bat
set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
remark
这些参数要做的事情就是启用远程调试和配置有效的选项:
指定运行的被调试应用和调试者之间的通信协议,(ie: transport=dt_socket)
远程被调试应用开通的端口,(ie: address=1043), 可定义其他端口,比如9999
server=y 表示这个 JVM 即将被调试
suspend=n 用来告知 JVM 立即执行,不要等待未来将要附着上/连上(attached)的调试者。如果设成 y, 则应用将暂停不运行,直到有调试者连接上
suspend=y的一个比较适用的场景是,当debug一个会阻止应用成功启动的问题时, 通过suspend=y可以确保调试者连上来之后再启动应用,否则应用已经启动报错了再调试也没意义了。*

命令行启动tomcat,即可完成tomcat启用远程调试啦。

$CATALINA_HOME/bin/catalina.sh jpda start
2 使用 JAVA_OPTS / CATALINA_OPTS
如果你是在 Windows 系统把 Tomcat 作为系统服务来运行的,直接打开 Apache Tomcat 的属性对话框,在Java Tab也添加启动参数:

-agentlib:jdwp=transport=dt_socket,
address=1043,server=y,suspend=n

请确保每一条配置都是新的行,参数选项之间没有空格
但如果Tomcat没有作为 Windows 系统服务, 启用方法与前面类似,在 setenv.bat 文件中写入:

set CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
如果运行在Linux上, setenv.sh 中写入:

export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
按照普通的方式启动Tomcat即可;

./startup.sh
或者
./catalina.sh start
3 使用JPDA启动
最后一种启用远程调试的方式是用 JPDA 切换, 用如下的启动命令将使用默认值自动启用远程调试,

catalina jpda start
该命令默认使用的设置是

-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
如果你想要修改默认设置中的选项怎么办?可以通过修改 Tomcat 需要的这些环境变量来实现:

//JPDA_TRANSPORT: 指定 jpda 传输协议
//JPDA_ADDRESS: 指定远程调试端口
//JPDA_SUSPEND: 指定 jvm 启动暂缓

export JDPA_ADDRESS=”8080“
然后再运行 catalina jpda start , 那么远程调试的端口将变成8080
idea调试
选择“Remote",然后输入Name, 修改Host, Port (1043) 即可, 保存后开始Debug。
posted @ 2020-03-06 10:05  雪地里的蜗牛  阅读(392)  评论(0编辑  收藏  举报