一、基础定义
- OpenJDK 开源免费的 Java 参考实现,完全开源、GPLv2 协议,是所有商用 JDK 的底层源码母体。
- Oracle JDK(商用 JDK) Oracle 公司基于 OpenJDK 源码二次打包、加私有组件的官方发行版,分免费版 和商用付费订阅版。
二、核心差异对比
1. 授权 & 使用成本(最关键)
- OpenJDK 永久免费,开源协议 GPLv2 with Classpath Exception 个人、公司、商用生产环境随便用,无版权、无付费、无审计风险。
- Oracle JDK
- JDK8:旧版本免费个人开发,商用必须买 Oracle Java 订阅;
- JDK11+:所有 Oracle JDK 二进制包商用生产收费,仅个人学习免费; 企业商用不订阅会收到法务函、追责。
2. 源码与内置组件
OpenJDK(纯净开源)
只包含开源模块,剔除 Oracle 私有闭源工具:
- 无:
jmc(Java Mission Control)、JFR 商业版、商用监控工具、字体渲染闭源库、WebStart - 自带:开源虚拟机 HotSpot、基础编译工具 javac、基础调试工具
Oracle JDK(闭源增强)
基于 OpenJDK 源码,额外捆绑 Oracle 私有闭源组件:
- 商业性能监控:JFR 飞行分析、JMC 可视化监控工具
- 优化图形字体、部分加密增强组件
- 商业安全补丁、企业级管理工具
3. 性能 & 兼容性
- 代码底层几乎一致 Oracle JDK 100% 基于 OpenJDK 主干开发,语法、API、虚拟机规范完全兼容,项目代码不用修改就能互相切换。
- 微小差距:
- Oracle JDK 有少量 Oracle 专属性能调优、商业监控功能;
- OpenJDK 性能日常业务无明显差距,普通业务几乎感知不到区别。
4. 更新与长期支持 LTS
- OpenJDK 官方 OpenJDK 只提供短期快照,无官方长期维护; 想要长期稳定 LTS,需第三方发行版:Adoptium Temurin、Amazon Corretto、Alibaba Dragonwell(龙芯 / 阿里 JDK)、Microsoft Build of OpenJDK。 第三方免费提供多年安全补丁、生产可用。
- Oracle JDK Oracle 官方提供 LTS 长期支持,但商用需要付费订阅才能获取安全更新。
5. 平台 & 分发
- OpenJDK:Linux、Windows、macOS、国产 CPU(龙芯、飞腾)都有第三方编译包,适配国产化;
- Oracle JDK:主要适配 x86 架构,国产芯片支持差,且商用收费。
三、衍生发行版(都是 OpenJDK 分支)
市面上免费可用的 JDK 全是 OpenJDK 编译产物:
- Temurin(Adoptium):最通用,跨平台,企业首选免费 LTS
- Amazon Corretto:AWS 配套,云端友好
- Alibaba Dragonwell:阿里定制,适配高并发、国产系统
- Microsoft OpenJDK:微软维护,Windows 生态友好 这些统一叫OpenJDK 发行版,和原生 OpenJDK 源码同源。
四、该选哪个?
- 企业生产、不想花钱、规避版权风险 选 OpenJDK 衍生版(Temurin/Corretto/Dragonwell),完全免费合规。
- 个人学习、本地开发 两者都行,OpenJDK 更省心无版权顾虑。
- 必须使用 Oracle 专属商业监控工具(JFR/JMC 企业版) 才需要付费 Oracle JDK。
五、一句话总结
Oracle JDK = OpenJDK 开源源码 + Oracle 私有闭源工具 + 商用收费授权; OpenJDK = 纯净开源 Java 核心,免费无版权限制,第三方发行版完全替代商用 Oracle JDK。