java的远程调试

在被调试的java程序启动的时候设置虚拟机运行参数

例如 

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=65532 -jar xxx.jar

-jar xxx.jar 是要启动的可运行的jar包

如果jar包内的java代码不像tomcat这种属于一直在后台运行的程序则会出现刚启动还没来得及打开调试器程序就结束了

这时候需要设置suspend=y 即让程序启动后等待调试器debugger连接上65532这个监听端口后再继续运行

如果是调试tomcat 则只需要在tomcat启动的时候传入jpda参数即可

例如:

catalina jpda start

因为catalina脚本里判断如果传入上述参数则运行一下语句,如下

if not "%JPDA_OPTS%" == "" goto gotJpdaOpts
set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
:gotJpdaOpts

具体说明在catalina 脚本注释里,如下

如果tomcat 是注册为windows服务启动的,则catalina.bat脚本不会被执行,所以在脚本设置虚拟机参数也不会生效

这时候需要做如下操作

第一步,在tomcat bin目录找到

我这是是tomcat7 所以是tomcat7w.exe 后面的w表示这是一个带窗口的应用程序

双击打开它

第二步,在Java Options:加入参数 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=65532

第三步,重启tomcat服务

如果你双击tomcat7w.exe 弹出如下窗口,说明你的tomcat在windows服务中的名字不叫tomcat7w,你需要去windows服务管理器中找到tomcat服务的名称,然后把tomcat7w.exe命名成服务的名字,比如abc.exe,然后是双击abc.exe即可。

=====================================分割线

下面是idea远程调试的配置,首先新建一个debug configuration 选择Remote类型

然后填写下面的配置 注意点为:远程的ip和端口号 本地源代码所在项目

然后点击OK 

最终运行图如下,连接成功,可以打断点开始调试啦~~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值