SpringBoot进行远程debug

本文详细介绍如何将远程Debug的项目打包成jar,配置启动参数,通过Windows cmd窗口模拟监控,实现远程调试。步骤包括设置项目端口,配置远程debug开关,确保主机IP与项目一致,端口不冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、将远程debug的项目打jar包

项目端口为:8081

在这里插入图片描述

二、配置启动

在这里插入图片描述
在这里插入图片描述
这个主机要和项目的IP一致,端口要和项目启动端口不一致
在这里插入图片描述
在这里插入图片描述
接下来把上图参数复制出来

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8088

三、在windows上cmd命令窗口中模拟监控

在刚才复制的参数前后加上相应的参数即可

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8088,suspend=n -jar weiwen-provider-quartz.jar

启动程序
在这里插入图片描述
启动成功,会出现监听地址
在这里插入图片描述
点击刚才配置的远程debug开关
在这里插入图片描述
出现下图,代表连接成功
在这里插入图片描述

四、进行远程debug调试

详细步骤就不多说了,访问接口,断点进入即可
在这里插入图片描述

### 远程调试 Spring Boot 应用程序 要在远程服务器上通过 `jps` 和其他 JVM 工具来调试 Spring Boot 应用程序,可以按照以下方法操作: #### 启动应用程序并启用远程调试支持 为了能够进行远程调试启动 Spring Boot 应用时需要添加特定的 JVM 参数。这些参数允许 IDE 或其他调试工具连接到运行中的 Java 进程。 以下是启动命令的一个示例: ```bash java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 \ -jar springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev [^1] ``` 在此命令中: - `-agentlib:jdwp=...` 是用于配置远程调试的关键部分。 - `transport=dt_socket`: 使用套接字传输协议。 - `server=y`: 表明此进程作为服务器端接受调试器连接。 - `suspend=n`: 暂停应用程序直到调试器附加(如果设置为 `y`,则会等待调试器连接后再继续执行)。 - `address=*:5005`: 指定监听地址和端口(此处为所有网络接口上的 5005 端口)。 #### 查找正在运行的应用程序 PID 在远程服务器上可以通过 `jps` 命令查找目标 Spring Boot 应用程序的进程 ID (PID)。假设已经成功部署了名为 `MonitorTuningApplication` 的 Spring Boot 应用,则可以在终端输入如下命令获取其 PID: ```bash jps -lv | grep MonitorTuningApplication [^3] ``` 上述命令将返回类似于下面的结果: ``` <process-id> com.imooc.monitor_tuning.MonitorTuningApplication ... ``` 其中 `<process-id>` 即为目标应用对应的唯一标识符。 #### 配置本地开发环境以实现远程连接 下一步是在本地集成开发环境中完成必要的设置以便于与远端服务建立通信链路。例如,在 IntelliJ IDEA 中可通过以下步骤达成目的: 1. 打开菜单项 **Run -> Edit Configurations...** 2. 添加新的 Remote Debugging Configuration 并指定主机名以及先前定义好的侦听端口号(即本案例里的 *localhost* 及 port number 如 5005)。 3. 设置断点后点击绿色三角形按钮即可触发实际链接过程并与线上实例同步交互数据流。 #### 利用局部变量表定位问题根源 当进入具体的函数调用场景下排查错误原因或者优化性能瓶颈期间,可能需要用到更深层次的技术手段比如查看当前线程堆栈信息或者是内存分配情况等等。此时就可以借助前面提到过的那些专门针对Java虚拟机设计出来的诊断类实用程序来进行辅助分析工作了。比如说利用 `jstack` 获取完整的线程转储文件从而快速发现死锁现象;又或是运用 `jmap` 导出整个heap dump进而深入研究对象之间的关系结构图谱等。而关于局部变量存储位置的知识点可以从参考资料里找到详尽描述说明文档查阅学习相关内容[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值