恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

IntelliJ IDEA 远程调试实战指南:基于 JDWP 协议调试远程 Tomcat 与 Jetty 服务

  • 首页
  • 资讯中心
  • /
  • IntelliJ IDEA 远程调试实战指南:基于 JDWP 协议调试远程 Tomcat 与 Jetty 服务

相关资讯

openrig 配置管理实战:统一管理 Claude Code 与 Codex 的 YAML 声明式方案 2026/10/1 7:37:57
GitHub趋势榜实战:项目评估、本地运行与Hexo部署 2026/10/1 7:37:57
如何高效刷GitHub热榜?项目评估与本地运行实战指南 2026/10/1 7:37:57

最新资讯

考研数学Day2:1/(a+bcosx)积分万能代换与分类讨论
使用X Manager远程CentOS 7服务器(XDMCP):lightdm+Xfce配置与TaoToken接入排错
awesome-claude-skills 实战:通过 Rube MCP(Composio)自动化 Callerapi 操作
三角洲行动更新后闪退卡死掉帧?ACE冲突与驱动优化全解析
技术面试指南(Interview_Question_for_Beginner)设计模式篇:Java 单例模式(Singleton)的四种实现与线程安全演进
JDK动态代理原理与实战:从InvocationHandler到Spring AOP

今日推荐

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

本周热门

从像素到笔画:srt-whiteboard-animation骨架笔迹追踪实现(Zhang-Suen细化+8邻接追踪)
网站建设的英语怎么说?别只背单词,看完这套安全完整流程才敢上线
新手入门看这篇:建设网站加盟避坑指南与SEO实操

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

IntelliJ IDEA 远程调试实战指南:基于 JDWP 协议调试远程 Tomcat 与 Jetty 服务

发布时间:2026/10/1 7:37:57
IntelliJ IDEA 远程调试实战指南:基于 JDWP 协议调试远程 Tomcat 与 Jetty 服务 文档教程【免费下载链接】IntelliJ-IDEA-TutorialIntelliJ IDEA 简体中文专题教程项目地址https://gitcode.com/gh_mirrors/in/IntelliJ-IDEA-Tutorial点击查看免费下载本指南完整讲解如何在 IntelliJ IDEA 中通过 JDWPJava Debug Wire Protocol协议对部署在远程服务器上的 Tomcat、Jetty 应用进行远程断点调试。文章以本仓库 remote-debugging.md 的实操流程为主线覆盖本地 Remote 运行配置、服务器端 JVM 参数注入、连接验证与断点命中的全过程。读完本文你将掌握一套不依赖 IDEA 与服务器同机、可直接落地的远程调试方案并理解-agentlib:jdwp参数中每个字段的实际作用。远程调试原理速览JPDA 与 JDWP远程调试的本质是让远程 JVM 对外暴露一个调试端口再由本地的 IntelliJ IDEA 以调试客户端身份连上这个端口双方通过JDWPJava Debug Wire Protocol交换断点、变量、线程栈等调试信息。JDWP 是 Java 平台调试架构JPDAJava Platform Debugger Architecture三件套之一JPDA 组成角色说明JVM TITool InterfaceJVM 内部虚拟机提供给调试工具的底层接口JDWPDebug Wire Protocol通信层调试端与被调试端之间的线上传输协议JDIDebug Interface客户端IntelliJ IDEA 调试器所依赖的高级 Java 接口JDWP 的启用方式非常简单在远程 JVM 启动命令上附加-agentlib:jdwp参数即可。本文反复使用的核心参数如下-agentlib:jdwptransportdt_socket,servery,suspendn,address5005参数项取值作用transportdt_socket以 SocketTCP方式传输调试数据为默认传输方式Windows 下 IDEA 也支持dt_shmem共享内存但跨机远程调试必须使用dt_socketservery被调试的 JVM 作为服务端主动监听调试端口等待客户端IDEA接入若为n则表示作为客户端去连接调试器suspendnJVM 启动后是否立即挂起等待调试器连接n表示不挂起、正常启动y表示挂起等待连接成功后才继续执行address5005监听/连接的目标调试端口需保证该端口在远程服务器上未被占用从本教程的定位看这套流程适用于 README.md 中说明的 IntelliJ IDEA 14~2023 及同源的 WebStorm、PyCharm 等 JetBrains 系列 IDE——凡是基于 JVM 的远程调试其配置入口与参数格式完全一致。准备工作确认 IP 与放行防火墙远程调试的第一步是确保本地 IDEA 能与远程服务器建立 TCP 连接明确远程服务器 IP例如本文沿用文档示例192.168.92.128请替换为你自己服务器的实际地址。处理防火墙远程调试端口5005必须对本地可达。原文档给出的做法是直接关闭防火墙service iptables stop这是 CentOS 6 等旧系统惯用命令。若使用 CentOS 7 或 Ubuntu 等发行版更推荐按需放行 5005 端口而非整体关闭防火墙例如# CentOS 7firewalld firewall-cmd --permanent --add-port5005/tcp firewall-cmd --reload # Ubuntuufw ufw allow 5005/tcp建议只对可信网络或内网环境开放调试端口避免将调试端口暴露在公网上。本地 IDEA创建 Remote 运行配置远程调试的客户端侧配置在本地 IDEA 中完成路径为打开Run / Debug Configurations窗口工具栏运行配置下拉框 → Edit Configurations或Alt Shift F10→ 选择 Remote 类型。在配置类型列表中选中Remote点击新建一条远程运行配置如图所示创建后IDEA 会自动生成一段 JVM 参数出现在配置面板的Command line arguments for remote JVM区域即上文反复提到的-agentlib:jdwptransportdt_socket,servery,suspendn,address5005请先复制这段参数稍后要原样注入到远程服务器的启动脚本中。在配置面板中填写服务器信息Host填入远程服务器 IP如192.168.92.128Port保持与address5005一致Transport选择SocketDebugger mode保持默认的Attach本地 IDEA 作为客户端去附着远程 JVM这也是与servery匹配的连接模式。从图示可以看到IDEA 给出的参数默认suspendn意味着远程 JVM 启动后不会阻塞等待调试器应用可以立即对外提供服务——这对生产/预发环境的远程调试非常重要。远程 Tomcat 开启调试在 catalina.sh / catalina.bat 中注入参数以 Linux 环境为例假设 Tomcat 安装于/usr/program/tomcat7其启动脚本为/usr/program/tomcat7/bin/catalina.sh编辑启动脚本vim /usr/program/tomcat7/bin/catalina.sh在文件最上方添加注意单引号保留避免 Shell 拆分变量export JAVA_OPTS-agentlib:jdwptransportdt_socket,servery,suspendn,address5005如果你的项目本身还有自定义 JVM 参数如内存设置-Xmx、编码-Dfile.encoding等请把调试参数与你原有的参数合并成同一个 JAVA_OPTS 字符串不要重复赋值覆盖例如export JAVA_OPTS-Xms512m -Xmx1024m -agentlib:jdwptransportdt_socket,servery,suspendn,address5005Windows 环境则编辑catalina.bat在文件顶部添加Windows 下不加引号set JAVA_OPTS-agentlib:jdwptransportdt_socket,servery,suspendn,address5005更推荐的注入方式setenv.sh直接修改catalina.sh的缺点是升级 Tomcat 或重装后容易丢失配置。Tomcat 官方支持在bin目录下创建独立的setenv.shWindows 为setenv.bat其内容会在启动时被catalina.sh自动加载是隔离调试配置的常见做法# 新建 /usr/program/tomcat7/bin/setenv.sh export JAVA_OPTS-agentlib:jdwptransportdt_socket,servery,suspendn,address5005两种方式最终都会把参数交给 JVM 进程原理相同可任选其一。远程 Jetty 开启调试Jetty 与 Tomcat 的差异在于Jetty 无需安装只要有对应的 jar 包即可直接启动应用因此调试参数可以直接内联在启动命令中。在启动应用的命令里追加之前复制的 JDWP 参数即可java -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -jar {your jetty path} {your port} --path {your war} 1/dev/null 21 对这段命令的说明片段作用java -agentlib:jdwp...以开启调试端口的 JVM 启动 Jetty-jar {your jetty path}Jetty 主 jar 路径{your port}Jetty 对外服务端口--path {your war}部署的 Web 应用路径1/dev/null 21 标准输出/错误重定向到空设备并在后台运行避免日志刷屏终端注意这里的address5005是调试端口与 Jetty 的业务端口{your port}相互独立不要混淆。连接与断点调试完成以上配置后按如下顺序操作先启动远程服务器Tomcat 或 Jetty确认 JVM 已带 JDWP 参数启动并成功监听 5005 端口。可用netstat -anp | grep 5005或ss -lntp | grep 5005验证。再在本地启动 Remote 运行配置选中刚创建的 Remote 配置点击 Debug 按钮绿色甲虫图标或Shift F9。如果连接成功IDEA 的 Debug 工具窗口会输出类似信息Connected to the target VM, address: 192.168.92.128:5005, transport: socket出现Connected to the target VM即代表本地 IDEA 已与远程 JVM 建立 JDWP 通道接下来就可以像本地调试一样操作在本地源码中需要的位置打上断点Ctrl F8用浏览器或接口工具访问远程服务的对应 URL请求进入断点行时执行会在本地 IDEA 中停住可以看到线程栈、变量值等调试信息且能正常进行单步、步入、求值等操作。关于断点命中后的常用操作F7步进、F8步过、F9恢复运行、Alt F8表达式求值、Drop Frame回退栈帧等本仓库的 debug-introduce.md 中有完整的 Win/Mac 快捷键对照表与进阶调试技巧条件断点、Pass count、断点自动删除、内存查看等远程调试与本地调试在断点操作上完全一致可直接参考该文。常见问题与注意事项suspendy与suspendn的选择调试应用启动阶段如 Spring 容器初始化的代码时可临时改为suspendy这样 JVM 会等待 IDEA 连接后才继续启动保证不遗漏早期代码平时保持n避免服务阻塞。端口冲突与防火墙address5005必须未被占用且防火墙/安全组需放行该端口多实例部署时可把各实例的调试端口错开如 5005、5006。连接失败的常见原因远程 JVM 未真正加载 JDWP 参数检查启动日志、Host/Port 填写不一致、transport不是dt_socket、服务器防火墙拦截等。安全提醒远程调试端口暴露在公网有被利用的风险建议仅在内网/测试环境使用或调试完成后移除启动参数并重启应用。与热部署插件搭配若希望远程修改代码后自动生效可结合本仓库 jrebel-setup.md 介绍的 JRebel 插件使用进一步缩短远程调试的迭代周期。关联阅读remote-debugging.md本文依据的原始实操文档debug-introduce.mdDebug 设置、快捷键与进阶断点技巧jrebel-setup.mdJava 热部署插件 JRebel 的安装与使用README.md本套 IntelliJ IDEA 简体中文专题教程的完整目录与适用范围赞分享文档教程【免费下载链接】IntelliJ-IDEA-TutorialIntelliJ IDEA 简体中文专题教程项目地址https://gitcode.com/gh_mirrors/in/IntelliJ-IDEA-Tutorial点击查看免费下载相关推荐在 IntelliJ 中远程调试 GitBucket基于 JDWP 的断点调试完整指南在 IntelliJ 中远程调试 GitBucket基于 JDWP 的断点调试完整指南 导读 GitBucket 是一个由 Scala 构建、具备 GitHu后端代码托管开发工具DevOpsIntelliJ IDEA 远程调试 Tomcat 应用终极完整指南IntelliJ IDEA 远程调试 Tomcat 应用终极完整指南 IntelliJ IDEA 是一款功能强大的 Java 集成开发环境提供了便捷的远程调文档教程IntelliJ IDEA 远程调试视频流媒体服务开发终极指南 IntelliJ IDEA 远程调试视频流媒体服务开发终极指南 IntelliJ IDEA 作为业界顶级的 Java IDE其强大的远程调试功能在视频文档教程上一篇Android Spannable富文本终极指南10个常见问题快速解决方案下一篇全面解析mobilenetv3_large_100.ra_in1k轻量级图像分类模型的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号