npx)和 JDK (首次运行时构建客户端 jar ,只有 JRE 不行)。建议先在本地或预发环境跑通一次。1. 全局安装 Skill (推荐)
把
-a 换成你使用的 Agent (可重复指定多个;不加 -a 则交互选择):# 例:一次装给 Claude Code 、Codex 、Cursor
npx skills add https://github.com/Aresxue/java-debug-skill --skill java-debug -g -a claude-code -a codex -a cursor
只想装到当前项目、随项目提交给团队,去掉
-g 即可:npx skills add https://github.com/Aresxue/java-debug-skill --skill java-debug -a codex
首次运行时,Skill 会用本地 JDK 自动构建客户端 jar (有 Maven 用 Maven ,没有就降级用 javac)。2. 目标 JVM 开启 JDWP⚠️ 生产环境禁止把 JDWP 端口暴露到公网,只能对内网 IP 白名单开放,或通过 ssh -L 隧道访问。# JDK 9+( zsh 下整个参数要加引号)
java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005" -jar app.jar
# JDK 8
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar app.jar
已经在运行的进程不能临时加 JDWP ,必须带参数重启。目标类需要带
-g 编译才能看局部变量:Maven / Gradle 默认满足,用 -g:none 或部分优化流程构建的产物不满足。3. 在 Agent 里发起调试
帮我远程 debug 10.0.1.5:5005 ,源码在 /path/to/repo ,断点打在 com.example.OrderService.query
----------------------
写在最后
AI 写代码已经很熟练了,但排查问题时,它缺的往往不是推理能力,而是眼睛。java-debug 想做的,就是把 Java 程序员最趁手的那件工具(断点调试)交到 AI 手里,并且用工程化的方式把它管住。
找一个开了 JDWP 的本地或预发 JVM ,让你的 Agent 完整跑一次"断点命中到根因结论"的闭环,体验一下它和"猜"的区别。用得顺手的话,欢迎来 GitHub 点个 Star ,也欢迎提 Issue 和 PR 。
👉 https://github.com/Aresxue/java-debug-skill