openjdk/jdk

开发工具

Java 开发工具包的上游源码,适合需要自行构建 JDK 或跟踪语言演进的人。

23,475
6,538
Java
GPL-2.0
创建于 8 年前

这个仓库是 JDK 主线源码树,不是写 Java 应用时装上的那个包。大多数 Java 开发者装一个发行版就够了,不必碰它;只有当你需要构建 JDK、验证虚拟机改动,或跟进下一个版本即将落地的特性时,它才真正相关。

解决什么问题

普通 Java 开发者想要一个能用的编译器和运行时,下载一个构建版即可。而想复现 HotSpot 里的问题、修改类库中的某个类,或者试用只存在于 master 上的语言特性(比如已合入源码的预览版值对象)的人,手头没有对应的已发布二进制。变化的环节在源码本身:你从这个源码树构建出 JDK,再用产出的运行时和编译器替代已安装的那个。得到的是一个与某个精确提交一致的 JDK,这正是提案讨论或缺陷报告所需要的。

有什么不同

这个仓库的特殊之处在于,它既是平台的参考实现,也是各方共同工作的场所。语言与类库的改动通过 JDK 项目页面 进入,并在公开的 缺陷跟踪系统 中讨论;README 本身主要指向 在线构建文档 和 社区站点。

实际意义在于你是从源码构建整个平台,而不是使用二进制。这样你能查看和修改任何组件,从类库到虚拟机,并用该 JDK 跑它自带的测试套件。代价是源码一直在变,中间状态不保证兼容。从 master 构建出来的是开发快照,不应分发;你依赖的东西可能在下一个提交就变了。只有文档标注为预览或孵化的特性才是稳定的预览形态,因此你在本地构建里观察到的行为,未必会出现在任何正式版本中。

谁值得试

适合平台工程师、JVM 和类库贡献者,以及需要针对未发布行为做测试的工具作者——值对象就是例子,2026 年的一位 Hacker News 评论者也指出这只是该工作的第一部分,后续还有更多 见同一讨论。也适合准备提交缺陷报告、需要一个精确源码版本来复现的人。

不适合普通应用开发者、学生,或构建和部署服务的团队。对他们来说,构建说明 描述的是一整套本地原生工具链编译,所换来的东西并不比已发布的 JDK 多。这里也不是学 Java 的地方,入门指南或直接安装 JDK 更值得花时间。

使用条件与边界

构建本身是主要成本。它需要合适的原生工具链和相当可观的本地资源,构建文档 是支持哪些配置的权威依据;本仓库没有提供能直接产出可用 JDK 的捷径。构建也很耗时,因此针对单个改动反复迭代,比改应用代码慢得多。

持续的负担是跟踪一个移动的目标。仓库跟随 JDK 主线开发,项目站点 说明的是发布节奏,而不是固定某个稳定分支。你需要自己维护构建脚本,并预期在上游变化后重新构建;还要把本地补丁与上游区分开,以便重新应用。许可证是 GPL-2.0,如果你打算分发构建出的运行时而不只是内部使用,这一点需要留意。

HotRepo 点评

HotRepo 只记录了这个仓库一次:2026-10-27 的每日榜单,23,476 stars,当天增加 10 个——只是一个快照,无法判断这份榜单关注是否持续。更具体的信号是讨论:关于预览版值对象的帖子获得 237 分和 175 条评论,其中一位评论者表示很高兴看到这门语言持续演进 见该讨论。附近的评论强调增量、向后兼容的推进方式,这正是看待本仓库的合适角度:这些步骤最先落在这里。在投入本地工具链之前,先核对 你所在平台的构建要求,并把任何 master 构建当作开发快照而非正式版本。

Hacker News 讨论

JEP 401: Value Objects (Preview) merged to OpenJDK master
▲ 237 · 175 条评论 · 2026年7月31日
AVX512 intrinsics for JDK’s Arrays.sort methods
▲ 158 · 152 条评论 · 2023年5月31日
Compact Object Headers in Java 24
▲ 14 · 0 条评论 · 2024年11月9日

本文由 AI 根据项目 README 生成,更新于 2026年10月27日,以项目官方文档为准。