如果你正在考虑将生产环境升级到 Java 11,或者已经在使用它,那么关于 Oracle 许可和支持模式的变动是你必须清楚的关键点。自 Java 8 之后,发布节奏和许可策略发生了显著变化,这直接影响着企业的选型决策。
Oracle JDK 的许可变更
过去,我们习惯直接下载 Oracle JDK 用于开发、测试和生产。但从 Java 11 开始,Oracle 调整了许可证结构,不再提供单一的通用构建版本,而是分成了两类:
- Oracle JDK(商业版):开发和测试可免费使用,但在生产环境中进行商业部署通常需要付费订阅。
- Oracle OpenJDK(开源版):完全免费,可在任何环境下使用,类似于其他开源库。
值得注意的是,这两个版本在功能上基本一致。你的应用程序无需修改代码,在这两个版本上都能正常运行。核心区别在于后续的支持和更新策略。

支持与更新策略
这是最容易踩坑的地方。如果你使用的是 Oracle 的商业 JDK,可以获得官方的更新和支持。但如果是 Oracle 的 OpenJDK 版本,Oracle 不会为旧版本提供长期的安全补丁或更新。这意味着一旦 Java 11 成为'旧'版本,Oracle 可能就不再为其维护 OpenJDK 分支。
因此,选择 OpenJDK 意味着你需要更积极地跟进新版本,或者准备好运行一个不再接收官方更新的旧版本。当然,Oracle 并不是唯一的供应商。像 Azul、IBM、Red Hat 以及社区主导的 Adoptium(原 AdoptOpenJDK)都提供了不同的支持模式。有些厂商可能会为 Java 9 甚至更早的版本提供长期支持,而 Oracle 则不会。
生产环境的建议
在实际落地时,建议做好以下几点评估:
- 明确需求:确认是否需要官方 SLA 支持。如果生产环境对稳定性要求极高,付费的商业 JDK 可能是更稳妥的选择。
- 关注替代方案:如果不想绑定 Oracle 的许可模型,可以对比 Azul、Red Hat 等厂商的支持条款。他们通常也提供免费服务,但更新周期可能不同。
- 升级规划:由于六个月一次的发布节奏,Java 的'旧'版本(如 9、10)很快会失去支持。确保你当前使用的版本在未来一段时间内仍能得到维护。
- 成本考量:虽然部分厂商提供免费版本,但企业级支持往往需要预算。比较各家的价格和服务范围是必要的步骤。
总结
Java 依然是免费的,但获取方式变了。你可以免费下载商业 Oracle JDK 用于非生产环境,但生产商用可能需要付费。Java 8 在 2019 年 1 月后已停止公共更新,如需继续获得更新,需寻找其他 JDK 发行版。对于 Java 9 及 10 等短期支持版本,Oracle 不再提供 OpenJDK 更新。
最终,选择哪个 JDK 取决于你对支持、更新频率和成本的权衡。建议参考 Java Champions 整理的详细指南,或直接联系厂商获取最新的支持政策文档。

