Ohhnews

分类导航

$ cd ..
foojay原文

面向编程代理的IDE:通过MCP提供NetBeans重构功能

#编程代理#netbeans#mcp#java重构#开源工具

为编程智能体打造的 IDE:通过 MCP 使用 NetBeans 重构

想象一下,你是一名 1996 年的 Java 开发者,那时现代 IDE 尚未出现,你只有命令行工具,也许还有记事本。要重命名一个方法,你会搜索它的名字,然后打开大约 22 个文件,逐一确认某个匹配项指的是这个方法,还是另一个同名但无关的方法,再用 sed 或手动替换每一处出现。你最终也能完成;只要代码能编译,大概就算大功告成。只是这要花费大量步骤和时间。

你可能会感到惊讶,但到了 2026 年,当你让编程智能体重命名一个方法时,它们基本上就是这么做的。

不使用服务器:Claude Code 搭配 Sonnet 5.5 在 Apache Commons Lang 中重命名一个方法。模型耗时 32 秒,消耗 994 个 token。

Dukehoff MCP for Java 将 IDE 的分析和重构操作作为工具提供给智能体:查找用法、重命名、移动、更改签名、安全删除、内联。智能体将方法签名传给重命名工具,服务器便会找到该方法,在所有位置重命名(包括重写方法),写入文件,并返回 diff 以及编译检查结果,指出任何新错误。

使用服务器:同一任务。模型耗时 10 秒,消耗 230 个 token。

一些 Java IDE 已经集成了这样的工具,但我们开发软件的方式已经改变。如今许多开发者会在终端中启动智能体,让它编写代码,然后在拉取请求中审查结果。Dukehoff MCP for Java 以无头方式运行,因此你的智能体不需要一个正在运行的 IDE 就能使用这些工具。而当你在 IDE 中工作时,同样的工具也在那里:在 VS Code 中配合 Copilot 使用,或者在正在运行的 NetBeans 中使用。

对你的智能体好一点,给它合适的工具来处理那些枯燥、重复且容易出错的任务。该服务器是开源的,而且正是针对这些任务,它为你和你的智能体节省了轮次、token 和时间。

节省了什么

  • 重命名一个在 22 个文件中使用的方法(NetBeans,java/ 文件夹,Opus 5.5):9 轮,而不是 51 轮;0.22 美元,而不是 0.56 美元。
  • 查找某个重载方法的调用者(Apache Commons Lang,Sonnet 5):成本降低 91%,时间减少 85%。
  • 在 144 个候选项中现代化 84 处(已告知使用规则,Sonnet 5.5):相比自己编写脚本,轮次减少 40%,成本约降低 22%,时间减少 39%。

每个数字都比较了同一个智能体在使用和不使用服务器时的情况。

这些是我们用 Claude 模型测得的真实数据。详情见 eval/RESULTS.md。

有这种想法的不止我们。Netflix 和 JetBrains 最近报告称,为智能体提供 IntelliJ IDEA 的无头代码智能,通常能让它们提高 20%–30% 的效率,最佳情况下最多可提高约 65%(JetBrains 博客)。他们的工具是专有的:编辑器扩展需要 IntelliJ IDEA Ultimate 订阅,而且对终端智能体的支持仍待推出。Dukehoff MCP for Java 是开源、免费的,并且如今已可与 Claude Code、Codex、Copilot 等工具配合使用,无论你是在终端、VS Code 还是 NetBeans 中工作。

为什么我们在 NetBeans 上押中了宝

Apache NetBeans 免费且开源,它使用 javac 本身来理解 Java——这正是你的构建所用的编译器:类型、重载和重写都能被精确解析,而非近似判断。它同样可以在无窗口模式下良好运行;它的 LSP 服务器每天都在这样做,而正是这个 LSP 服务器为 VS Code 的 Apache NetBeans 扩展提供支持。而且它拥有一个经过二十多年构建的成熟重构引擎。

除此之外,NetBeans 还有一个隐藏的宝藏:Jackpot,一个基于规则的改写引擎。Jackpot 规则依据代码的结构和类型进行匹配,而不是依据文本,因此迁移只会改动应该改动的地方,而不会碰那些形似的代码。智能体可以自己编写这样的规则,我们也为常见迁移提供了经过测试的规则集:JUnit 4 到 5、Java 现代化,以及 javax 到 jakarta。

获取方式

Dukehoff MCP for Java 在 Apache License 2.0 下免费且开源。选择适合你工作方式的一种:

  • Claude Code、Codex、Copilot CLI 和其他终端智能体: 从最新版本下载 dukehoff-mcp-<version>.tar.gz(macOS、Linux)或 .zip(Windows),解压,然后让它为你的智能体打印注册信息:dukehoff-mcp --config claude(参见安装指南)。
  • VS Code 搭配 GitHub Copilot: 从 Visual Studio Marketplace 安装 Dukehoff MCP for Java,或者在 VS Code 的扩展视图中搜索“Dukehoff MCP”。它会一并安装 Apache NetBeans 扩展;这些工具会出现在 Copilot 的智能体模式中。
  • NetBeans: 从最新版本下载 dukehoff-mcp-netbeans-<version>.nbm 和 dukehoff-mcp-launcher-<version>.jar,在“工具 > 插件 > 已下载”下安装插件,并使用 --ide 将终端智能体连接到正在运行的 IDE(参见在正在运行的 NetBeans IDE 中使用)。

你需要 JDK 17 或更高版本;该扩展需要 VS Code 1.101 或更高版本,该插件需要 NetBeans 31 或更高版本。为了让智能体主动调用这些工具,请将告知智能体何时使用这些工具中的简短段落添加到你的 CLAUDE.md 或 AGENTS.md 中。

如果你的迁移任务中,变更的含义取决于类型——例如内部框架、供应商库替换,或超出 API 层面的 Java EE 到 Jakarta EE 迁移——我们可以提供帮助:联系 Dukehoff。


本文最初发表于 dukehoff.com。

Dukehoff MCP for Java 运行于 Apache NetBeans 之上。它不隶属于 Apache NetBeans 项目或 Apache Software Foundation,也未获得其认可。“Apache”、“NetBeans”和“Apache NetBeans”是 Apache Software Foundation 的商标。## 参与讨论 开发工具 [LOADING...]
[LOADING...]Alexey Gavrilov2026年10月1日 725 次浏览

Lathe:直接依托 Maven 构建运行的 Java 语言服务器

开发工具JavaMaven

AI [LOADING...]
[LOADING...]Viktoria Evdokimova2026年10月7日 571 次浏览

构建通过,任务不对:使用 AI 编码代理的 Java 团队工作协议

AIJava测试

数据工程 [LOADING...]
[LOADING...]Geertjan Wielenga2026年8月30日 270 次浏览

NetBeans DataWrangler:查询、转换和编辑数据分析文件

数据工程数据库开发工具

开发工具 [LOADING...]
[LOADING...]Geertjan Wielenga2026年6月14日 621 次浏览

使用 OpenTelemetry 和 Dash0 观测 Apache NetBeans

开发工具NetBeansOpenTelemetry