idea断点调试jar包

article/2025/10/1 19:45:21

本文以springbootdemo-0.0.1-SNAPSHOT.jar 为例,jar内容需与idea保持一致。

1、启动命令
常规jar启动:java -jar springbootdemo-0.0.1-SNAPSHOT.jar
jar包断点调试启动:java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar springbootdemo-0.0.1-SNAPSHOT.jar

-Xdebug  #开启调试,不添加在Linux可能无法启动监听-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005  #加载本机代理库,详情参考 java -agentlib:jdwp=help 

java -agentlib:jdwp=help

Java Debugger JDWP Agent Library--------------------------------(see http://java.sun.com/products/jpda for more information)jdwp usage: java -agentlib:jdwp=[help]|[<option>=<value>, ...]Option Name and Value            Description                       Default
---------------------            -----------                       -------
suspend=y|n                      wait on startup?                  y
transport=<name>                 transport spec                    none
address=<listen/attach address>  transport spec                    ""
server=y|n                       listen for debugger?              n
launch=<command line>            run debugger on event             none
onthrow=<exception name>         debug on throw                    none
onuncaught=y|n                   debug on any uncaught?            n
timeout=<timeout value>          for listen/attach in milliseconds n
mutf8=y|n                        output modified utf-8             n
quiet=y|n                        control over terminal messages    nObsolete Options
----------------
strict=y|n
stdalloc=y|nExamples
--------- Using sockets connect to a debugger at a specific address:java -agentlib:jdwp=transport=dt_socket,address=localhost:8000 ...- Using sockets listen for a debugger to attach:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y ...Notes
------ A timeout value of 0 (the default) is no timeout.Warnings
--------- The older -Xrunjdwp interface can still be used, but will be removed ina future release, for example:java -Xdebug -Xrunjdwp:[help]|[<option>=<value>, ...]

2、idea添加Remote
打开idea项目,依次点击 Edit Configurations -> add(+) -> Remote ,出现下图所示

Name : 配置名称,自定义。
Debugger mod : Attach to remote JVM
Transport : Socket
Host : 目标主机IP (jar部署服务器IP)
Port : Java代理监听端口 (address 参数值),默认为5005
Jdk : 根据自己部署环境配置
Command line arguments for remote JVM : -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005, address值根据实际情况而定。
Use module classpath : 需要断点的项目

在这里插入图片描述

3、查询 address 取值

netstat -ano | findstr 端口号  # Windows查询占用端口的进程
netstat -anp | grep 端口号  # linux查询占用端口的进程jps  # 查看系统java进程# 查看java运行参数
jinfo  
Usage:jinfo [option] <pid>(to connect to running process)jinfo [option] <executable <core>(to connect to a core file)jinfo [option] [server_id@]<remote server IP or hostname>(to connect to remote debug server)where <option> is one of:-flag <name>         to print the value of the named VM flag-flag [+|-]<name>    to enable or disable the named VM flag-flag <name>=<value> to set the named VM flag to the given value-flags               to print VM flags-sysprops            to print Java system properties<no option>          to print both of the above-h | -help           to print this help message

假定Java 进程端口号为 36321
1、Windows使用 netstat -ano | findstr 36321 查询端口占用进程,Linux使用netstat -anp | grep 36123查询端口占用进程,如果不确定端口号的话也可以通过jps查询出所有Java进程从中找出对应进程,查得进程号 22040

2、jinfo -flags 22040 查询Java运行参数。查得Command line 中 address = 5005

在这里插入图片描述

4、开放debug端口
进行远程调试时,需关闭防火墙或开放对应端口如:5005,如果是使用云服务器要在管理规则中开放端口

以centos和腾讯云为例

1、开放防火墙

systemctl status firewalld.service   #查看防火墙状态#如果不想配置防火墙,可以直接关闭防火墙
systemctl stop firewalld.service # 不关闭防火墙的情况下需开放对应端口,建议开启防火墙
firewall-cmd --zone=public --list-ports  #查看防火墙开放端口
firewall-cmd --add-port=5005/tcp --permanent  #永久开放5005端口
systemctl restart firewalld.service  # 重启防火墙使得配置生效

2、云服务器开放端口
注意:centos防火墙与云服务器防火墙并不互通, 两者都需开放对应端口。无论centos服务器防火墙是否开启,云服务器都需开放对应端口。

在云服务器防火墙中添加规则,添加后如下图所示
在这里插入图片描述

5、开启本地断点进程
假设目标IP为 127.0.0.1

1 、使用telnet 127.0.0.1 5005 查看远程端口是否可用,如果不可用那可能是防火墙未设置或设置有误,检查一下。

2、idea中启动 添加的remote (debugJar),可以在控制台看到打印
Connected to the target VM, address: '127.0.0.1:5005', transport: 'socket' ,接下来就和本地断点一样了,在对应的代码行添加断点,访问远端项目,可以看到服务进入到对应断点。

!](https://img-blog.csdnimg.cn/574d396708df4ed295ef348c34305a86.png)


http://chatgpt.dhexx.cn/article/Q1LEV3kL.shtml

相关文章

如何在idea中打debug断点

在调试代码的时候&#xff0c;你的项目得debug模式启动&#xff0c;也就是点那个绿色的甲虫启动服务器&#xff0c;然后&#xff0c;就可以在代码里面断点调试啦。 下面不要在意&#xff0c;这个快捷键具体是啥&#xff0c;因为&#xff0c;这个keymap是可以自己配置的&#xf…

【IDEA 断点调试】

IDEA 断点调试 断点类型 行断点 【红色圆点】 点击左侧空白区域 、或 在行上ctrlF8 详细断点 【黄色圆点】 shift单击左侧空白区域&#xff0c;同时弹窗选择断点详细设置 方法断点 【红色菱形】 点击方法名所在左侧空白区域 。 进入方法后每一行都是挂起&#xff0c;打在接口…

IDEA debug 断点调试技巧

1、首先看下IDEA中Debug模式下的界面&#xff1a; ① 以Debug模式启动服务&#xff0c;左边的一个按钮则是以Run模式启动。在开发中&#xff0c;我一般会直接启动Debug模式&#xff0c;方便随时调试代码。 ② 断点&#xff1a;在左边行号栏单击左键&#xff0c;或者快捷键Ctrl…

IDEA 加断点debug时阻塞问题

今天有朋友提到一个问题&#xff0c;“我在springBoot项目中建一个Controller&#xff0c;然后写两个方法&#xff0c;方法1中加个断点&#xff0c;然后请求方法1&#xff0c;进入断点之后再请求方法二&#xff0c;此时方法二会一直等待&#xff0c;等方法一执行完才能再执行方…

Idea 进行断点调试的 快捷键

快捷键 功能描述 F8 单步调试&#xff0c;不进入函数内部 F7 单步调试&#xff0c;进入函数内部 ShiftF7 选择要进入的函数 ShiftF8 跳出函数 AltF9 运行到断点 AltF8 执行表达式查看结果 F9 继续执行&#xff0c;进入下一个断点或执行完程序 CtrlF8 设置/取消当前行断…

IDEA中断点调试

调试在开发中大量应用&#xff1a; 【1】Debug的优化设置&#xff1a;更加节省内存空间&#xff1a; 设置Debug连接方式&#xff0c;默认是Socket。 Shared memory是Windows 特有的一个属性&#xff0c;一般在Windows系统下建议使用此设置&#xff0c; 内存占用相对较少。 【…

idea debug无法打断点 以及解决办法

idea debug无法打断点 以及解决办法 今天工作中调试代码时候遇见一个问题 一行很普通的 map.put()代码 无法 进行断点调试 效果如图 出现这种情况大概有两种可能&#xff0c;一种是断点打在了错误的地方&#xff0c;程序进不到这里&#xff1b;第二种是有可能需要重新编译。…

IDEA的Debug断点调试

首先说一下我的IDEA的版本是windows Intelli IDEA2021.1.2 Debug 先打开IDEA中的Debug&#xff0c; 任意点击一个Debug的图标就可以打开下方的窗口 1.Debug模式启动服务&#xff0c;左边的一个按钮则是以Run模式启动。 2.断点&#xff1a;在左边行号栏单击左键即可建立一个断…

Intellij IDEA debug断点调试技巧总结

版本 IDEA 2019.3 主题&#xff1a;material dark。 操作系统&#xff1a;Mac OS command 对应 ctrloption 对于 alt 为项目配置了运行配置后&#xff0c;可以通过按 ShiftF9 在调试模式下启动它。 在 “调试工具” 窗口中&#xff0c;您可以看到框架和线程的状态、变量和表…

关于idea的八种断点调试

背景&#xff1a;在日常开发中&#xff0c;我们经常会使用到idea&#xff0c;那么debug就更不用说了&#xff0c;但是你真的会打断点么&#xff0c;看完这篇文章再下结论吧 &#xff08;ps&#xff0c;部分图片因为公司做过内部分享&#xff0c;所以打码&#xff09; 一&#…

idea 断点调试,点击Run to Cursor后,不进入断点

idea 断点调试,点击Run to Cursor后,不进入断点 解决方法: 点击run to cursor 后,第二次不进入断点了,此时点击右侧窗口的 pause ,暂停程序 点击 Resume Program,恢复程序,即可重新进断点

Java断点调试 idea断点调试 debug教程

IDEA断点调试 Java程序断点调试 文章目录 IDEA断点调试 Java程序断点调试前言一、什么情况下需要debug二、使用idea如何进行debug三、假设案例分别进行debug教程1.案例一&#xff1a;查看运行时对象的值2.案例二&#xff1a;程序异常查看原因 总结解释 前言 前面写过一篇关于如…

初学者必备:IDEA中的debug断点调试技巧大全与断点常用技巧

IDEA中的debug断点调试技巧 1.如何打断点与取消断点 点击红箭头的位置一下打断点 两下取消 2.运行断点 3.进入断点 1.横排按钮 1.回到当前断点所在界面 2.根据当前断点逐行向下执行–不会进入方法 3.根据当前断点逐行向下执行会进入方法里面 --但是只能进入我们自己写的方法…

IDEA debug 断点无效

1.检查是否以debug模式启动项目&#xff0c;就是图中的那个有小虫的按钮 2.查看是否禁用了断点&#xff0c;禁用断点此处会显示灰色 3.在断点处后面加上一条输出语句&#xff0c;判断是否进入到了断点处&#xff08;对于web项目你需要有访问请求&#xff0c;才能到达一些断点处…

IDEA断点调试学习

一、开启断点调试 1.点击idea上方的小虫&#xff0c;就可以启动调试。 2.点击下方idea的下方红框里面的按钮&#xff0c;可以从其它地方回到断点的位置&#xff0c;点击一下即可。 3.点击步过按钮&#xff0c;不会进入到方法里面&#xff0c;一行一行的往下执4.步入按钮&#…

如何使用IDEA断点调试(debug), 用图文并茂的方式来教你

文章目录 前言一、为什么要使用debug二、使用方法1、逐行代码查看2、数组越界3、方法进入、出去4、动态下断点 总结 前言 今天在刷算法题的过程中&#xff0c;遇到了很多错误&#xff0c;自己怎么想也想不明白&#xff0c;准备试一试IDEA的断点调试功能&#xff0c;发现自己不…

IDEA--IDEA debug断点调试技巧

目录 一、Debug开篇 二、基本用法&快捷键 三、变量查看 四、计算表达式 五、智能步入 六、断点条件设置 七、多线程调试 八、回退断点 九、中断Debug Debug用来追踪代码的运行流程&#xff0c;通常在程序运行过程中出现异常&#xff0c;启用Debug模式可以分析定位…

IDEA如何打断点调试

文章目录 1. 设置断点2. 调试3. 调试的基本操作3.1 step over3.2 step into 跟 Force step into3.3 step out3.4 resume program3.5 mute breakpoints3.6 view breakpoints3.6 条件断点 编写代码的时候&#xff0c;有时候我们需要跟踪代码的运行情况&#xff0c;使用断点调试就…

Idea断点调试(debug)详解

目录 1.打断点&#xff0c;并启动2.按钮介绍1.测试程序2.Step Over3.Step Into4.Force Step Into5.Step Out6.Drop Frame7.Run to Cursor8.Evaluate Expression9.Resume Program10.Stop11.View BreakPoints12.Mute BreakPoints 3.断点分类1.方法断点2.属性断点3.异常断点4.条件…

大数据必学Java基础(三十二):IDEA中的断点调试

文章目录 IDEA中的断点调试 一、常用断点调试快捷键 二、条件判断,查看表达式的值 IDEA中的断点调试