IDEA远程断点调试jar包项目

前言

springboot 项目在开发完,打成一个 jar 包,放到服务器运行时,如果报错了,怎样排查比较方便?

要是开发环境,我们可以在 IDEA 打上断点,轻松调试,但是现在已经是一个 jar 包在服务器运行着了。

我们可以远程断点调试 jar 包项目吗?

可以。


一、准备工作

1. jar包应用

自己创建一个 springboot 项目,里面很简单,就写一个用来调试的接口:

@GetMapping("/test")
public String test(){
    int i = 1 / 0;
    System.out.println(i);
    return "success";
}

打成 jar 包,上传到一台虚拟机节点,我这里上传到了 192.168.201.4
在这里插入图片描述

1. IDEA配置

点击 Edit Configurations
在这里插入图片描述
选择 Remote
在这里插入图片描述
填写信息
注意:我们只需要修改 Host 那一项就可以了,改成我们远程运行 jar 包的节点 ip
在这里插入图片描述

二、断点调试

1. 运行jar包

在上一步, IDEA 自动生成了一串东西,就是这个:
在这里插入图片描述
复制它 !

去到虚拟机节点下,运行命令启动项目:

java 复制的指令 -jar 包名

我实际的运行命令:

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

控制台可以看到,它正在监听 5005 端口
在这里插入图片描述

2. 访问接口

http://192.168.201.4:8087/test

3. 进来断点

在这里插入图片描述

三、注意点

我这里故意让程序抛异常,并打印信息,可以看到,跟我们本地断点有点不一样,IDEA 的控制台是不会输出信息的,我们只能在虚拟机节点的控制台查看
在这里插入图片描述

IDEA 的控制台始终显示:

在这里插入图片描述
不过堆栈信息,运行中的对象属性等,还是可以在 IDEA 那里看到的

还有,运行的 jar 包的代码和 IDEA 中的代码要保持一致


总结

欢迎指出我的错误!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值