Blog chevron_right Java

关注 JDK 支持政策和成本

Watch for JDK Support Policies and Costs

任何人都可以下载特定版本 Java Development Kit (JDK) 的源代码,并为主流平台编译其部分内容。OpenJDK 项目包括许多发行版,每个发行版都提供不同级别的 JDK 支持。在这篇博文中,我们将列出一些问题,以确保您使用适合您的发行版。

我们说 OpenJDK 是一个开源项目是什么意思?任何人都可以下载特定版本 Java Development Kit (JDK) 的源代码,并为主流平台编译其部分内容。这些可执行文件和库可以打包并作为 OpenJDK 发行版提供,目前有许多不同的发行版。您可以选择不同的提供商,从免费的、不受支持的到提供全面支持的商业提供商等等。 

要声称与 Oracle Java SE 兼容,每个 OpenJDK 发行版中的单个二进制文件必须通过与该 Java 版本相关联的 Oracle 所有技术兼容性工具包 (TCK) 测试套件。由于有许多符合 TCK 标准的 OpenJDK 提供商,因此对它们进行评估可能是一项挑战。不同提供商之间的一些考虑因素包括: 

哪些 Java 版本是受支持的? 

截至 2025 年 1 月,在总共 20 多个 Java 版本中,有四个长期支持 (LTS) 版本。很容易找到最新 LTS 版本 Java 21 的 JDK 支持,但越往后,支持旧版本的提供商就越少。Oracle 在 2024 年 10 月结束了对上一个 LTS 版本 Java 17 的免费支持。只有 Azul 支持 Java 6 和 Java 7。

来源:2025 年 Java 状态调查和报告

哪些平台是受支持的? 

大多数用户在 Linux 和 Windows 等主流操作系统上运行应用程序,并使用英特尔和 AMD 等常见处理器。如果您的环境包括不太常见的平台(如基于 ARM 的处理器),或者您仍在 Solaris 操作系统上运行 Java 应用程序,您应该了解发行版是否为它们提供构建版本,以及是否继续提供修复?  

一个版本将获得多长时间的支持? 

即使在 LTS 版本中,不同的发行版也会提供不同的维护和支持期限。如果您的计划是让当前版本运行 10 年后再对代码进行任何更改,您需要确保该版本的 LTS 支持至少持续 10 年。有些发行版可能还会承诺在停止提供计划更新后继续支持某个版本。在这一被动支持阶段,用户仍可报告问题,如有必要,构建版本提供商可能会提供包含修复程序的特别更新。 

请参阅 Azul 支持生命周期路线图 

提供更新的速度如何?  

计划的 JDK 更新是通过 OpenJDK 项目开发的,并且在预先计划的日期和时间之前,由 OpenJDK 漏洞小组对其进行封锁。在投资 OpenJDK 发行版之前,您应该了解该发行版在封锁解除后数小时内提供更新的跟踪记录,以及过去是否出现过长时间的延迟。询问该发行版是否有 SLA,规定何时保证提供更新。更新速度非常重要,因为封锁解除后,安全漏洞的详细信息就会被公开,从而开始与时间赛跑。坏人开始开发漏洞;如果您的更新几天甚至几周都无法使用,您的系统就会面临风险。 

稳定更新是否可用? 

Oracle Java SE 为每次更新提供两种格式 

  1. 关键补丁更新 (CPU):稳定的安全更新 
  2. 补丁集更新 (PSU):完整更新 

要保持最大程度的 JDK 支持,这两种更新都必不可少。当 Oracle 针对已知漏洞发布补丁时,您的组织可以快速实施 CPU 来修补该漏洞。如果只有 PSU,则必须实施整个更新,这不仅耗费时间和资源,还需要进行回归测试。只有 Oracle 和 Azul 提供 CPU。

即使符合 TCK 标准,一些 Java 用户仍然觉得除了 Oracle Java 支持外,其他任何支持都很昂贵。Azul Platform Core 客户通常比 Oracle Java SE 节省 70%。 

了解有多少公司为 Java 支持付费

prime-cta-banner

Platform Core

Get to know Azul’s product based on OpenJDK.