IDEA远程断点调试jar包项目

2023-11-01

前言

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 中的代码要保持一致


总结

欢迎指出我的错误!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA远程断点调试jar包项目 的相关文章

随机推荐

  • U3D 材质转换为URP渲染

    创建URP项目 然后导入已有的package 发现预览图为品红色的 材质显示不正确 如下图所示 在项目的菜单栏选择升级渲染材质为URP渲染即可 最后的效果如下
  • HJ0427分隔输出

    要求 第一个数N为字符串的数量 第二个以后为连续输入的字符串 字符串之间用空格隔开 若字符串长度大于等于8 则每八个为一组 之间用空格隔开 切割后余下部分不满八个则用0补位 字符串长度小于8 则后补零 补满八个为止 升序输出 输入 2 ab
  • NOI20102010年,世博会在中国上海举办,吸引了数以千万计的中外游客前来参观。暑假期间小Z也来到了上海世博园, 她对世博园的拥挤早有所闻,对有的展馆甚至要排上好几个小时的队才能进入也做好了充分

    NOI2010 2010年 世博会在中国上海举办 吸引了数以千万计的中外游客前来参观 暑假期间小Z也来到了上海世博园 她对世博园的拥挤早有所闻 对有的展馆甚至要排上好几个小时的队才能进入也做好了充分准备 但为了使得自己的世博之旅更加顺利舒畅
  • ios混编flutter相机相册不可用

    问题描述 ios项目混编flutter的时候根据官网的方法添加混编代码后 有时候会出现在flutter端使用image picker插件调用相机相册时 相机相册使用不了的现象 MethodChannelFilePicker Platform
  • linux学习笔记(字符串测试 for循环)

    例题 1 传递一用户名参数给脚本 判断此用户的用户名跟其基本组的组名是否一致 并将结果显示出来 bin bash A 1 B id u 1 C id g 1 if B eq C then echo A 用户名和组名一样 else echo
  • 30道MySQL基础面试题

    每天晚上 00 00 执行 mysql 数据备份 请写出 crontab 配置项 答案 0 0 mysqldump uroot p123456 flush logs 数据库名 gt 备份文件名 每天凌晨 1 点在 data 目录新建当天日期
  • Vue3状态管理库Pinia——实现简易版购物车

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • 为什么不能直接通过IP访问网站

    转 http www examw com java jichu 143769 为什么不能直接通过IP访问网站 为什么不能直接通过IP访问网站 从理论上说 在IE 或其他的Web浏览器 如Firefox 的地址栏中输入IP地址 都可能访问ww
  • AD个人常用快捷键记录

    避免以后太长时间没用忘记AD快捷键 快捷键 F2 拉线 F3 过孔 F4 敷铜 F9 矩形排列 7 切割铜皮 2 线选 3 框选 6 坐标移动 N 显示隐藏飞线 A 对齐 丝印位置 R M测量两个点之间的距离 R P测量两个物体边到边的最小
  • java 项目 远程调试_Java项目远程调试

    准备一个项目 比如我有个SpringBoot项目 打包好 上传服务器 服务器 1 开启端口 8080是项目端口 8000是远程调试端口 root localhost app firewall cmd zone public add port
  • gitlab代码上传方式1

    本地代码上传到gitlab上操作流程 自我总结 1 在gitlb上新建项目 点击New project 首次将代码上传到gitlab上时 先配置Settings中的SSH Keys 2 配置SSH Keys 那么SSH Keys是怎么获得的
  • 推荐几款可以直接在手机上编程的app(包含Java、C、Python等)

    这里介绍几款可以在手机上编程的app 分别是 1 java和Android AIDE集成开发环境 2 C语言 c语言编译器 C4droid 3 python QPython3 Termux 4 CSS HTML JavaScript HTM
  • python 预测任意天后股票数据_机器学习交易——如何使用回归预测股票价格?【翻译】...

    前几天 我读了一篇关于人工智能到目前为止是如何发展的以及它将走向何方的文章 我被吓了一跳 我也很难理解作者所描绘的未来的可能性 这是人工智能在医学领域应用的可能性之一 外科医生可以用她的运动皮层控制一个机器手术刀 而不是用她的手 她可以从手
  • 团队管理那点破事,OKR绩效、核心人才、面试、技术分享、研发流程

    微信搜索 微观技术 关注这个不喜欢内卷的程序员 精彩文章汇总 GitHub https github com aalansehaiyang technology talk Star 12K 汇总java生态圈常用技术框架 开源中间件 系统架
  • Redisson分布式锁

    目录 一 分布式锁 1 分布式锁的设计原则 2 分布式锁的实现方案 二 Redisson 三 Redisson分布式锁 1 引入Redisson依赖 2 配置Redis 3 注入RedissonClient 4 使用RLock 总结 一 分
  • 如何使用iAd在应用程序中展示Banner广告

    本文由 Da杯柠檬水 微博 翻译自 AppCoda 原文 Using iAd to Display Banner Ad in Your App 虽然 你可能即将开始开发下一个超级应用程序 你的一切规划和设计都已就绪 但还是有一件事可能你并没
  • Linux内核机制之等待队列

    Linux内核的等待队列是以双循环链表为基础数据结构 与进程调度机制紧密结合 能够用于实现核心的异步事件通知机制 在中 等待队列在源代码树中 这是一个通过连接的典型双循环链表 如下图所示 在这个链表中 有两种数据结构 等待队列头 wait
  • [区块链] 密码学中Hash算法(基础)

    在介绍Hash算法之前 先给大家来个数据结构中对hash表 散列表 的简单解释 然后我再逐步深入 讲解一下hash算法 一 Hash原理 基础篇 1 1 概念 哈希表就是一种以 键 值 key indexed 存储数据的结构 我们只要输入待
  • Node.js 获取当前时间

    1 安装依赖 npm install silly datetime 2 引入依赖 const sd require silly datetime 3 使用 const time sd format new Date YYYY MM DD H
  • IDEA远程断点调试jar包项目

    文章目录 前言 一 准备工作 1 jar包应用 1 IDEA配置 二 断点调试 1 运行jar包 2 访问接口 3 进来断点 三 注意点 总结 前言 springboot 项目在开发完 打成一个 jar 包 放到服务器运行时 如果报错了 怎