本地怎么远程调试服务器

服务启动的时候加上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启动后不暂停等待调试器。"

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

相关推荐
如意.75912 分钟前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣42 分钟前
智能体选型实战指南
运维·人工智能
yy55271 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔3 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密3 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20153 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
卷福同学4 小时前
【养虾日记】QClaw操作浏览器自动化发文
运维·人工智能·程序人生·自动化
woho7788995 小时前
不同网段IP的网络打印机,打印、扫描设置
运维·服务器·网络
耗子会飞5 小时前
小白学习固定VM虚拟机的centos服务器的IP
运维·服务器·centos