Ohhnews

分类导航

$ cd ..
foojay原文

Java 21末日倒计时:Oracle免费许可到期,企业面临三大抉择

#java 21#oracle#openjdk#软件许可#企业升级

Java 21 倒计时迫在眉睫

Oracle JDK 21 曾根据 Oracle 的免费使用条款与条件(NFTC)许可证在生产环境中免费使用。这一免费时代已经结束。Oracle 的许可规则将 NFTC 免费使用期限与下一个长期支持(LTS)版本发布后的一年绑定;由于 Java 25 于 2025 年 9 月 16 日正式可用,该免费许可窗口已于 2026 年 9 月 16 日关闭。

现在真正重要的日期是 2026 年 10 月 20 日。这是 Oracle 的下一个季度更新——第一批 Java 21 补丁,包括关键安全补丁更新(CSPU),将不再通过免费许可证提供给你。从那天起,所有 Java 21 修复都需要付费的 Oracle 订阅。这不是一次性事件:同样的机制已经让 Java 17 的免费更新退役,一旦 Java 29 发布,它也会依次让 Java 25 的免费更新退役。这是 Oracle 许可条款中内置的经常性收费站。

[LOADING...]

对企业而言,这意味着不能再推迟决策。如果你仍在生产环境中运行 Oracle JDK 21,现在有三种选择:

  • 向 Oracle 付费购买商业订阅。
  • 升级到 Java 25。
  • 迁移到 OpenJDK 发行版。

每条路径各有利弊,但都面临同样的截止日期压力。

选项 1:向 Oracle 付费购买支持

在 AI 智能体能在几分钟内创建并发动漏洞利用的时代,运行 Java 却无法获得由 SLA 保障的安全修复,会显著提高安全漏洞和合规违规的风险。要获得包括安全修复在内的更新,你需要为 Java 21 部署购买支持,这需要 Java SE 通用订阅:

  • 如果你已经拥有该订阅,那就没问题,因为通用订阅按员工人数收费,而不是按 Java 使用量收费。
  • 对某些企业,Oracle 保留了旧的定价指标(基于 Java 使用量),前提是你的使用量没有变化。如果你正在增加 Java 21 应用,Oracle 很可能将你转为通用订阅,这可能使许可成本提高 2-5 倍。
  • 从未为 Java 支持向 Oracle 付费的企业,将面临一笔没有预算的支出。为一个全新的六位数或七位数年度订阅构建商业论证、获得批准并执行采购,本身就是一个耗时数月的流程——而且还要与 2026 年的所有其他预算优先事项(尤其是 AI 计划)争夺财务部门的注意力。

随着时间所剩无几,应当规划更具成本效益、更长期的解决方案。

选项 2:升级到 Java 25

表面上看,升级到 Java 25 似乎是负责任、紧跟潮流的选择:

  • Oracle 承诺为 Java 25 提供至少八年的支持(仅限付费支持)。
  • 从 Java 21 升级到 Java 25 要比你以往现代化旧版 Java 时可能经历的过程容易得多,因为 21 和 25 都是现代版本。

然而,有三个实际问题使这个选项比看上去更难,尤其是在今年这么晚的时候:

  • 升级跑步机永不停歇。 Oracle 现在每两年发布一个新的 LTS 版本,并且只在前一个版本上给予一年免费重叠期。今天升级到 Java 25 的企业并没有解决问题;它们只是把问题的再次发生排上了日程。
  • 你的第三方依赖可能尚未准备好。 发布一年多后,生态系统仍在追赶。例如:
    • Kotlin 的工具链在将 Java 25 作为编译目标方面一直滞后,Gradle 构建会回退到较旧的 JVM 目标,而不是原生以 Java 25 为目标编译。
    • Lombok 需要一个专门配合 JDK 25 发布时机的兼容版本。
    • JaCoCo 和 Mockito 等依赖字节码操作的工具,只有在更新到底层 ASM 库的新版本后,才实现可靠的 Java 25 支持。
  • 时间窗口已经消失。 虽然升级工作本身可能快速而简单,但对于关键任务应用,依赖审计、回归测试、性能验证、安全审查和分阶段推出通常需要数月。

如果你还没有开始,那么对于任何认真的升级(也就是说,多应用或复杂应用),窗口已经关闭。但这并不意味着现在规划更长期、更永久的解决方案为时已晚。

选项 3:迁移到 OpenJDK

OpenJDK 解决方案早已证明自己是 Oracle Java SE 的企业级替代方案。虽然在服务器端将 Oracle Java 替换为 OpenJDK 简单快捷,但要注意其他问题:

  • 桌面迁移——随着 Java 25 放弃 32 位支持,一些旧版桌面应用可能已被落下。确保旧版应用供应商在 OpenJDK 而非 Oracle 上运行时继续提供支持,本身就可能成为独立项目。
  • 安全风险——迁移到免费或不受支持的 OpenJDK 发行版的企业,将失去对关键补丁更新(CPU)的访问;这些更新以可立即部署的仅安全补丁形式提供季度更新。相反,通常只有在 Oracle 发布季度更新后的数天到数周,才能获得补丁集更新(PSU),并且需要在部署前进行大量测试。如前所述,在 AI 智能体威胁时代,补丁延迟会带来重大安全风险。
  • 合规风险——不受支持的 OpenJDK 还会带来行业和政府监管合规风险,因为大多数法规都有严格的安全要求,尤其是在快速补丁周期、快速事件响应时限等方面。

目前,为少数 Java 21 实例现在开始 OpenJDK 迁移仍然可行,尤其是迁移到受支持、符合标准的 OpenJDK 发行版(如 Azul Core)时,它提供:

  • 经过验证的迁移方法——Azul 基于最佳实践、通过数百次迁移积累的知识库以及可加速迁移的自动化手册,在帮助客户脱离 Oracle Java 方面拥有 100% 成功率的记录。
  • 及时更新——Azul 是唯一像 Oracle 一样提供 CPU 的 OpenJDK 供应商,同时还提供周期外更新,以确保你可以缩短补丁周期并满足合规要求。
  • Java 专业知识——Azul 拥有 Oracle 之外规模最大的 Java 专家团队,提供 24x7x365 全球支持,确保你的初次迁移成功,并让你的持续业务保持稳定。

也许最重要的是,迁移到 Azul Core(提供业界最长的支持生命周期)可以让企业彻底摆脱 Oracle 的许可时间表。何时采用 Java 25、29 或任何未来的 LTS 版本,将成为组织根据自身路线图做出的工程决策,而不是由 Oracle 发布节奏决定的合规截止日期。

决策框架

如今时钟已越过免费许可截止日期,对大多数企业来说,实际问题不是哪个选项理论上最好,而是哪个选项能在 2026 年 10 月 20 日更新到来之前实现,同时不引入过度风险:

  • 如果你几个月前就开始,升级到 Java 25 也许曾是一个可行选项。
  • 向 Oracle 支付 Java 21 支持费用能为你争取时间,而不是解决问题,且成本可能增加 2-5 倍。
  • 迁移到具有专家商业支持(Azul Core)的安全稳定 OpenJDK 构建,可解决当前周期和下一个周期的问题。

要了解更多关于这些选择的信息,请下载我们的白皮书《Oracle Java 威胁》,其中更深入地讨论了机会成本、升级陷阱和 OpenJDK 解决方案。
分享此页面

发现错误或有补充?在 GitHub 上编辑此页面

[LOADING...]
作者

Dana Crane

Azul Core 产品营销总监。

相关文章

Java [LOADING...]
Frank Delporte2026年7月27日 1,160 次浏览

Java 季度间安全更新新动态:CSPU 对你的发布流水线意味着什么

Java

Java [LOADING...]
Frank Delporte2026年8月21日 427 次浏览

Azul 2026 年 8 月发布:Java 首个每月 CSPU

Java

Java [LOADING...]
2 位作者2026年9月14日 234 次浏览

Foojay 播客第 101 期:Java 27 实践:更小的堆、更智能的默认值,以及即将到来的 Valhalla

Java

加入讨论

Java [LOADING...]
Frank Delporte2026年7月27日 1,160 次浏览

Java 季度间安全更新新动态:CSPU 对你的发布流水线意味着什么

Java

Java [LOADING...]
Frank Delporte2026年8月21日 427 次浏览

Azul 2026 年 8 月发布:Java 首个每月 CSPU

Java

Java [LOADING...]
2 位作者2026年9月14日 234 次浏览

Foojay 播客第 101 期:Java 27 实践:更小的堆、更智能的默认值,以及即将到来的 Valhalla

Java