Translated message

A translation of this page exists in English.

OpenJDK 生命周期和支持策略

已更新 -

索引

概述
OpenJDK 生命周期和支持策略
OpenJDK 延长生命周期阶段
OpenJDK 更新发布日期
RHEL 支持表上的 OpenJDK
Windows 支持表上的 OpenJDK
OpenJDK 权利

红帽对 Eclipse Temurin 的支持
Eclipse Temurin 生命周期和支持策略
Eclipse Temurin 支持的权利

常见问题解答及参考信息

本文中的信息可能会根据需要进行更改。

概述

OpenJDK (Open Java Development Kit)是 Java Platform, Standard Edition (Java SE)的一个开源实现。上游社区项目 OpenJDK 当前由 Oracle 赞助和领导,并在 GNU 通用公共许可证(GNU GPL 2 和 2+)下发布,但有一个链接例外。

OpenJDK 是 Red Hat Enterprise Linux 中的 Java 开发工具包(JDK)和 Java 运行时环境(JRE)。Red Hat Enterprise Linux 以与其他内容集相同的方式提供 OpenJDK 软件包。用于 Microsoft Windows 的 OpenJDK 软件包也通过支持门户的 JBoss 下载 部分分发。OpenJDK 也作为红帽容器目录中的众多容器中的 JDK 和 JRE 提供

Oracle 领导 Java Platform SE 的开发,并对 OpenJDK 项目做出了重大贡献。红帽是项目的最大的非 Oracle 贡献者之一。如需了解更多详细信息,请参阅 Java Platform SE 的概述和开发模型

以下部分介绍了红帽对 OpenJDK 的支持范围。

OpenJDK 生命周期和支持策略

从红帽第一次引入开始,OpenJDK 的主版本会被支持最少六年。如果底层 RHEL 平台的停用日期早于 OpenJDK 版本的停用日期,则 RHEL 版本可能会不支持 OpenJDK 版本。 当前,RHEL 有三个活跃的主要版本,但建议用户在可行的情况下尽快迁移到 OpenJDK 的最新版本,以继续获得更新和支持。

OpenJDK 延长生命周期阶段

OpenJDK 11 包括一个延长生命周期支持(ELS-1)支持阶段。这是一个可选的付费扩展,需要单独的 ELS 订阅。如需了解更多详细信息,请参阅:
* 红帽构建的 OpenJDK 11 扩展生命周期支持(ELS-1)的可用性
* 生命周期阶段

OpenJDK 更新

对于 OpenJDK 8、11、17 和 21 发行版本,红帽每年将提供四个更新,间隔大约三个月。

RHEL 支持表上的 OpenJDK

支持的 RHEL 版本 完全支持结束 ELS-1 结束
OpenJDK 6 (1.6) RHEL 5.3+, 6.0+, 7.0+ 2016 年 12 月 31 日 N/A
OpenJDK 7 (1.7) RHEL 5.9+, 6.3+, 7.0+ 2020 年 6 月 30 日 N/A
OpenJDK 8 (1.8) RHEL 6.6*, 7.1+, 8.0+, 9.0* 2026 年 11 月 30 日 2030 年 12 月 31 日
OpenJDK 11 RHEL 7.6+, 8.0+, 9.0+ 2024 年 10 月 31 日 2027 年 10 月 31 日
OpenJDK 17 RHEL 8.4+, 9.0+ 2027 年 10 月 31 日 N/A
OpenJDK 21 RHEL 8.9+, 9.3+, 10.0+ 2029 年 12 月 31 日 N/A

重要备注

  • 为什么 OpenJDK 8 的支持时间比 OpenJDK 11 长?
  • 因为生命周期结束了,OpenJDK 8 现在在 RHEL 6 上已停用,因此 1.8.0_275 是 RHEL 6 提供的最后一个也是最终的 OpenJDK 8 更新。 为了获得持续的 OpenJDK 支持及其最新更新,必须使用 RHEL 7、8 或 9。
  • RHEL 9 上支持 OpenJDK 8,但受限于上面显示的 OpenJDK 8 生命周期日期。
  • RHEL 9 中的 OpenJDK 8 可用于任何与 OpenJDK 8 兼容的 Java 应用程序或库,并使用 8 (或更低)编译为目标字节码;这些应用程序不能依赖 RHEL 9 中包含的 Java 组件和库,因为它们是编译的目标 OpenJDK 11 字节码,且不会在 OpenJDK 8 运行时上运行。
  • OpenJDK 11 包含一个 ELS-1 支持阶段(可选,付费扩展)。有关 ELS-1 的更多信息,请参阅 生命周期阶段
  • 请注意,虽然 RHEL 9 中当前系统默认的 OpenJDK 是 OpenJDK 11,但这将与即将发布的 RHEL 9.5 版本一起改变,并追溯到所有当前支持的 RHEL 9 的 EUS 版本。所有作为 RHEL 9 发行版本一部分的 Java 应用程序都被编译为与 OpenJDK 11 兼容,但系统 JDK 将移到 OpenJDK 17,以减少在生产环境中使用过时的运行时的风险。
  • OpenJDK 21 版本不再包括与发行版本(Windows 和 RHEL rpms)捆绑的 JMC (Java Mission Control)。请参阅 JDK 21 中的 JDK Mission Control (JMC)在哪里?

Windows 支持表上的 OpenJDK

支持的 Windows 版本 完全支持结束 ELS-1 结束
OpenJDK 8 (1.8) Windows Server 2012 R2, 2016, 2019, 2022
Windows 10, 11
2026 年 11 月 30 日 2030 年 12 月 31 日
OpenJDK 11 Windows Server 2012 R2, 2016, 2019, 2022
Windows 10, 11
2024 年 10 月 31 日 2027 年 10 月 31 日
OpenJDK 17 Windows Server 2012 R2, 2016, 2019, 2022
Windows 10, 11
2027 年 10 月 31 日 N/A
OpenJDK 21 Windows Server 2016, 2019, 2022
Windows 10, 11
2029 年 12 月 31 日 N/A

重要备注

OpenJDK 权利

OpenJDK 上 Java 工作负载的权利包括在 Red Hat Enterprise Linux 订阅中。当与 Red Hat Middleware 一起使用时,Red Hat Middleware 订阅包括 Windows 的 OpenJDK 权利。对于 Windows 上的其他 Java 工作负载(非 Red Hat Middleware),需要一个额外的 Windows 上的 OpenJDK 订阅。

在所有情况下,在生命周期的 ELS 阶段,都需要一个单独的 ELS 支持的权利。

OpenJDK 的权利包括在 Red Hat Enterprise Linux 订阅中。Windows 的 OpenJDK 权利包括在 Red Hat Middleware 订阅中。对于 Windows 上的其他 Java 工作负载,需要一个额外的 OpenJDK 订阅。

红帽对 Eclipse Temurin 的支持

Eclipse Temurin 是一个由 Eclipse Adoptium 开发的 OpenJDK 发行版本。OpenJDK (Open Java Development Kit)是 Java Platform, Standard Edition (Java SE)的一个开源实现。上游社区项目 OpenJDK 当前由 Oracle 赞助和领导,并在 GNU 通用公共许可证(GNU GPL 2 和 2+)下发布,但有一个链接例外。

Eclipse Temurin 由 Adoptium 通过其网站、API 和各种平台的市场作为二进制文件和安装程序分发,并在 DockerHub 上作为官方 Docker 镜像分发。

Oracle 领导 Java Platform SE 的开发,并对 OpenJDK 项目做出了重大贡献。红帽是项目的最大的非 Oracle 贡献者之一。如需了解更多详细信息,请参阅 Java Platform SE 的概述和开发模型

以下章节概述了红帽对 Eclipse Temurin 的支持范围。

Eclipse Temurin 生命周期和支持策略

红帽为 Linux x86_64, Linux aarch64, Windows 32-bit*, 和 Windows 64-bit 上的选择的 Eclipse Temurin 二进制代码提供企业级支持;对 macOS x64 和 aarch64 上的提供开发人员支持。下面概述了在特定版本和平台上的支持。版本从推出支持开始提供最少六年的支持。

如果底层平台的停用日期早于 OpenJDK 版本的停用日期,则 OpenJDK 版本可能在平台上不被支持。建议用户在可行的情况下尽快迁移到 OpenJDK 的最新版本,以继续获得更新和支持。

在 Linux 中对 Eclipse 的支持表

支持的 Linux 版本 (x86、arch64) 完全支持结束 ELS-1 结束
Eclipse Temurin 8 RHEL 8.0+, 9.0+, 10.0+
Ubuntu 18.04.x, 20.04.x, 22.04, 24.04.x
SLES 15
2026 年 11 月 30 日 2030 年 12 月 31 日
Eclipse Temurin 11 RHEL 8.0+, 9.0+, 10.0+
Ubuntu 18.04.x, 20.04.x, 22.04, 24.04.x
SLES 15
2024 年 10 月 31 日 2027 年 10 月 31 日
Eclipse Temurin 17 RHEL 8.0+, 9.0+, 10.0+
Ubuntu 18.04.x, 20.04.x, 22.04, 24.04.x
SLES 15
2027 年 10 月 31 日 N/A
Eclipse Temurin 21 RHEL 8.0+, 9.0+, 10.0+
Ubuntu 18.04.x, 20.04.x, 22.04, 24.04.x
SLES 15
2029 年 12 月 31 日 N/A

在 Windows 中对 Eclipse 的支持表

支持 Windows 版本 (64-bit, 32-bit) 完全支持结束 ELS-1 结束
Eclipse Temurin 8 Windows Server 2012 R2, 2016, 2019, 2022
Windows 10, 11
2026 年 11 月 30 日 2030 年 12 月 31 日
Eclipse Temurin 11 Windows Server 2012 R2, 2016, 2019, 2022
Windows 10, 11
2024 年 10 月 31 日 2027 年 10 月 31 日
Eclipse Temurin 17 Windows Server 2012 R2, 2016, 2019, 2022
Windows 10, 11
2027 年 10 月 31 日 N/A
Eclipse Temurin 21 * Windows Server 2016, 2019, 2022
Windows 10, 11
2029 年 12 月 31 日 N/A

[*] 备注:Eclipse Temurin OpenJDK 21 版本不再支持 32 位 Windows。

在 macOS 中对 Eclipse 的支持表

支持的 Mac 版本 (x64, aarch64) 完全支持结束 ELS-1 结束
Eclipse Temurin 8 仅限 x64:MacOS 11, 12, 13, 14, 15 2026 年 11 月 30 日 2030 年 12 月 31 日
Eclipse Temurin 11 MacOS 11, 12, 13, 14, 15 2024 年 10 月 31 日 2027 年 10 月 31 日
Eclipse Temurin 17 MacOS 11, 12, 13, 14, 15 2027 年 10 月 31 日 N/A
Eclipse Temurin 21 MacOS 11, 12, 13, 14, 15 2029 年 12 月 31 日 N/A

Eclipse Temurin 支持的权利

Eclipse Temurin 的权利与红帽构建的 OpenJDK 权利相同:OpenJDK 上 Java 工作负载的权利包括在 Red Hat Enterprise Linux 订阅中。当与 Red Hat Middleware 一起使用时,Red Hat Middleware 订阅包括 Windows 的 OpenJDK 权利。对于 Windows 上的其他 Java 工作负载(非 Red Hat Middleware),需要一个额外的 Windows 上的 OpenJDK 订阅。对于非 RHEL 或 Mac 上的工作负载,需要一个额外的 OpenJDK 订阅。

Eclipse Temurin 11 包括一个 ELS-1 支持阶段(可选,付费扩展)。有关 ELS-1 的更多信息,请参阅 生命周期阶段

常见问题解答及参考信息

OpenJDK 的服务等级协议和涵盖范围是什么

OpenJDK 的服务等级协议(SLA)和涵盖范围(SoC)由用例决定。

开发人员支持的 SoC 在 这里 定义,SLA 在 这里 定义。

对于 RHEL 和 Windows 上 OpenJDK 的生产环境部署,SoC 在 这里 定义,SLA 在 这里 定义。

红帽是否可以给 OpenJDK 打补丁?

是的。红帽能够对 Red Hat Enterprise Linux 发行版和 Windows 中分发的 OpenJDK 软件提供更新,它们分别取受限于本文档提供的生命周期指导和上游发行本中修复的可用性。当旧的上游版本中未提供修复时,红帽也可以将修复从较新的 OpenJDK 版本反向移植到旧的受支持的版本。

为 Windows 提供了什么支持?

请参阅 本文档

我们是否可以在同一台 RHEL 服务器上安装多个 OpenJDK 版本?

可以,只要它们可以在介质(DVD)或 Red Hat Network 渠道上提供,就可以在同一台 Red Hat Enterprise Linux 服务器上有多个 OpenJDK 版本。这些软件包是单独的软件包,其版本号在 RPM 名称中明确标识。第三方 Java JDK/JRE 也可以与 OpenJDK 一起安装。为方便起见,红帽还通过补充渠道捆绑了 IBM JDK。请注意,IBM JDK 不是 RHEL 内容集的一部分,并遵循 IBM 关于更新和生命周期的指导。我们建议您使用 alternatives 工具[1] 来配置 OpenJDK 或第三方 Java。

如何在同一台服务器上安装多个次要版本?

RHEL 对(主)版本生命周期内维护关键组件的二进制兼容性方面有着良好的记录。OpenJDK 也不例外。用户可以自由选择使用特定版本(例如,"1.41.1.10.4.el6").但是,我们强烈建议您更新到可用的最新版本。这确保您可以收到对最新的严重的 bug 的修复和安全修复。

虽然红帽将在商业上做出合理的努力来支持较早的版本,但可能有必要更新到最新版本,以帮助重现和识别问题。红帽将对版本之间的任何二进制不兼容视为 bug ,并尝试根据 SLA 提供修复。对此的例外情况包括但不限于我们需要对软件包中的安全漏洞打补丁,并且没有避免二进制兼容性破坏的选项。这些情况非常罕见,并在勘误中明确记录了。

如何在 Red Hat Enterprise Linux 系统上安装 OpenJDK 的多个次要版本?

我们是否可以在同一 Windows 服务器上安装多个版本的 OpenJDK?

红帽为 Windows 服务器提供了 OpenJDK 8 和 OpenJDK 11 发行版本。在一台 Windows 系统上运行两个版本被完全支持。

Oracle 未发布源代码的二进制插件是否被支持?

自 2010 年起,二进制插件不再在 OpenJDK 中使用,因此我们没有在 OpenJDK 中提供它们。

红帽是否进行了 TCK 合规性测试?

2025 年 7 月 1 日前红帽提供的 OpenJDK 的所有构建均经过 TCK 认证。该日期后的 OpenJDK 8 构建未经过 TCK 认证。所有其他版本将继续进行 TCK 测试。

什么是 TCK 测试?

TCK 由成百上千个测试组成,其涵盖了每个特定主要版本的 Java 规范请求(JSR)标准版本定义的 Java 规范的很多方面,并为上述实现的每个单独的二进制构建运行。TCK 测试 API 的兼容性和完整性(方法和签名测试覆盖)、语言特性和功能行为,以及 Java SE 实现的其他特征,来验证二进制文件是否符合规范。TCK 不包含性能测试,不会检查内部实现详情,除非它们暴露给了用户,例如通过更改公共 API。

红帽发布 OpenJDK 9、10 或 11 吗?

我们的目的是支持长期支持版本,因此红帽会跳过 Java SE 9 和 10,并提供基于 Java SE 11 的 OpenJDK 发行版本。如需了解更多信息,请参阅 红帽 OpenJDK 11 建议 文章。

红帽是否提供 32 位发行版本?

红帽为 Red Hat Enterprise Linux 6 和 7 提供了 32 位的发行版本。红帽没有计划在任何其他 OpenJDK 发行版本中支持 32 位发行版本。

用于 RHEL 的 OpenJDK 红帽构建支持哪些硬件架构?

OpenJDK 8 和 11 支持以下构架,并打包在 RPM 中。
-x86_64
-PPC64 (从 RHEL 7 开始)
-PPC64LE (从 RHEL 7 开始)
-i686
-AARCH64

与旧版本相比,OpenJDK 11 的生命周期显得比较短,为什么?

红帽发布的 OpenJDK 版本最初承诺 6 年的支持。我们定期检查生命周期,如果确定有足够的需求,可以延长生命周期。OpenJDK 8 生命周期已审核并已延长,OpenJDK 11 将在其生命周期的后期进行同样的检查。

OpenJDK 生命周期与 JBoss 中间件产品的生命周期有何关系?

OpenJDK 7 和 8 生命周期已更新,来更好地与 JBoss Middleware 产品组合中的产品的生命周期保持一致。通常,JBoss 产品支持多个 JVM 版本,我们定义生命周期以确保用户在 JBoss 产品的生命周期内有完全受支持的堆栈。在 JBoss 产品的生命周期内,用户可能必须从一个 Java 版本升级到更新的版本。JBoss 生命周期在 Red Hat JBoss Middleware 产品更新和支持策略 页面中定义了。

OpenJDK 是否包含在 RHEL 6 的延长生命周期支持(ELS)附加服务中?

没有包含。包含的列表记录在 此文章 中,但不包括 OpenJDK 。

生命周期日期是否适用于 OpenShift 中提供的 OpenJDK 镜像?

是的。

OpenJDK 是否包含在 RHEL、OpenShift 和中间件产品权利中?

是的。

客户门户网站中提供的 Windows OpenJDK 是否与 developers.redhat.com 上提供的二进制文件相同?

不能保证它们是相同的,通常开发人员门户上的二进制代码和客户门户网站上的二进制代码不同。对于生产环境支持,用户必须使用客户支持门户中的二进制文件。

红帽的 OpenJDK 发行版本是否包含 JavaFX?

不包含。红帽没有计划在自己的发行版本中提供 JavaFX 或 OpenJFX 项目。

红帽的 OpenJDK 构建是否包括 Java Web Start?

包含,红帽的用于 RHEL 和 Windows 的 OpenJDK 版本 8 构建包括使用 IcedTea-Web 的 Java Web Start 支持。

红帽是否对 Applet 提供支持?

不提供,红帽没有在其 OpenJDK 发行版本中对 Applet 进行测试,也不提供支持。Applets 已被确定为具有安全风险,已在 Java 9 中弃用,当前的浏览器也不支持。

用于 Windows 的 OpenJDK 的红帽构建是否支持 Shenandoah GC?

支持,用于 Windows 的 OpenJDK 的红帽构建支持 Shenandoah Garbage Collector。要了解包括哪些版本,请查看上面列出的所有配置。

红帽的 OpenJDK 发行版和 Oracle JVM 有什么区别?

文章 中详细介绍了已知的区别。

[1] 使用 alternatives 管理不同的 JDK:什么是替代系统以及如何配置它?

Comments