本地怎么远程调试服务器

服务启动的时候加上Java参数

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999

这个Java启动参数 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999 是用于启用 Java调试协议(JDWP) 的,允许调试器(如IntelliJ IDEA、Eclipse等)附加到正在运行的JVM进程上进行远程调试。以下是参数的详细解释:


参数分解

  1. -agentlib:jdwp
    • 表示加载JVM的本地代理库 jdwp(Java Debug Wire Protocol),用于支持调试功能。
  2. transport=dt_socket
    • 指定调试器与JVM之间的通信方式为 Socket连接 (默认端口可通过address指定)。
    • 其他可选值:dt_shmem(仅Windows,共享内存通信)。
  3. server=y
    • 表示当前JVM作为调试服务器,等待调试器主动连接(y=yes)。
    • 如果设为 n,则JVM会尝试以客户端模式连接调试器(较少用)。
  4. suspend=n
    • 是否在启动时暂停JVM,等待调试器连接后再继续执行:
      • y:暂停(适合调试启动问题)。
      • n:不暂停,直接运行(适合调试运行中的代码)。
  5. address=9999
    • 指定调试监听的端口号(这里是 9999)。调试器需要配置相同的端口才能连接。
    • 可以是具体端口(如 9999),或 *(随机端口,但需通过其他方式获取实际端口)。

典型使用场景

  1. 远程调试
    • 启动Java应用时添加此参数,然后在IDE中配置远程调试,连接到目标JVM的 9999 端口。
  2. 本地调试
    • 即使本地运行,也可以通过此参数启用调试,再通过IDE附加到进程。

示例命令

复制代码

bash

|---------------------------------------------------------------------------------------------|
| java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999 -jar your_app.jar |


注意事项

  1. 安全性
    • 调试端口会暴露JVM内部信息,不要在生产环境使用,或通过防火墙限制访问IP。
  2. 端口冲突
    • 如果 9999 被占用,可更换为其他端口(如 5005)。
  3. 性能影响
    • 调试模式会略微降低运行速度,但通常可忽略。
  4. 与 -Xdebug 的区别
    • 旧版JVM可能使用 -Xdebug -Xrunjdwp:...,但 -agentlib:jdwp 是更现代的写法。

IDE配置示例(IntelliJ IDEA)

  1. 点击 Run → Edit Configurations。
  2. 选择 + → Remote JVM Debug。
  3. 填写 Host(目标机器IP)和 Port(如 9999)。
  4. 启动Java应用后,在IDE中点击调试按钮即可连接。

总结

这个参数的作用是:
"在JVM的9999端口上启动一个调试服务器,允许调试器通过Socket连接,且JVM启动后不暂停等待调试器。"

常用于开发或测试环境中诊断问题,但需避免在生产环境使用。

相关推荐
集智飞行2 小时前
解决mavros2 ros2版本cpu占用高的问题
java·服务器·前端
Java后端的Ai之路2 小时前
昇腾NPU显存管理避坑指南:从npu-smi输出精准识别空闲卡的底层逻辑与实战
服务器·网络·数据库·npu·大模型服务
YH行业报告分析3 小时前
2026电缆铺设设备市场:自动化敷设与电网升级驱动增长
运维·自动化
ajassi20004 小时前
AI语音智能体开发日记(十八)智能体服务器xiaozhi-esp32-server源码部署指南
运维·服务器·人工智能·ai·ai编程
‎ദ്ദിᵔ.˛.ᵔ₎4 小时前
linux 进程信号(下)
linux·运维·服务器
Mikko74 小时前
Linux 磁盘满了但 du 找不到?LVM 扩容 df 不变?fstab 写错开不了机?三台真机实测磁盘排查
linux·运维·centos
蓝胖的四次元口袋4 小时前
Jenkins知识梳理(2)
运维·jenkins
yumgpkpm4 小时前
Acceldata ODP 3.3.6.4 vs CDP Private Cloud Base 7.3.2 对比
大数据·运维·服务器·hadoop·华为·zookeeper·hbase
Liuqy-055 小时前
特殊进程——孤儿、僵尸、守护进程
linux·运维·服务器
等我调个Bug5 小时前
【Linux系统篇】权限
linux·服务器