Translated message

A translation of this page exists in English.

OpenJDK 生命周期和支持政策

已更新 -

索引

概述
OpenJDK 生命周期和支持政策
OpenJDK 更新发布日期
OpenJDK 生命周期和 RHEL 版本
OpenJDK 生命周期日期和 Windows 版本
OpenJDK 权利

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

常见问题解答及参考信息

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

概述

OpenJDK(Open Java Development Kit)是 Java Platform, Standard Edition (Java SE) 的一个开源实现。上游社区项目 OpenJDK 当前由 Oracle 赞助并领导,并根据 GNU General Public License (GNU GPL 2 和 2+) 发行(包括一些例外)。

OpenJDK 是 Red Hat Enterprise Linux 中的 Java Development Kit (JDK) 和 Java Runtime Environment (JRE)。在 Red Hat Enterprise Linux 中,OpenJDK 软件包的提供方式与其它内容的提供方式相同。对于 Microsoft Windows,OpenJDK 软件包通过支持门户网站中的 JBoss 下载页提供。OpenJDK 也作为 Red Hat Container Catalog 中的许多容器的 JDK 和 JRE 提供

Oracle 领导 Java Platform SE 的开发并对 OpenJDK 项目做出了大量贡献。红帽是该项目中除 Oracle 以外的重要贡献者之一。如需了解更多信息,请参阅 Overview and Development model of Java Platform SE

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

OpenJDK 生命周期和支持政策

从红帽正式推出一个 OpenJDK 的主要版本开始,这个版本会被支持最少六年。如果底层的 RHEL 平台的 RHEL 版本的过期时间早于 OpenJDK 版本的过期时间,则这个 OpenJDK 版本在底层 RHEL 过期时可能不再被支持。当前,RHEL 有三个活跃的主要版本,但我们建议用户在可行的情况下尽快迁移到 OpenJDK 的最新版本,以继续获得更新和支持。

OpenJDK 更新

对于 OpenJDK 8、11、17 和 21 ,红帽每年将提供四个更新,大约没三个月一次。

OpenJDK 生命周期和 RHEL 版本

RHEL 5 支持 RHEL 6 支持 RHEL 7 支持 RHEL 8 支持 RHEL 9 支持 OpenJDK 版本的全面支持结束 ELS-1 支持阶段结束
OpenJDK 6 (1.6) 5.3 6.0 7.0 不适用 不适用 2016 年 12 月 N/A
OpenJDK 7 (1.7) 5.9 6.3 7.0 不适用 不适用 2020 年 6 月 N/A
OpenJDK 8 (1.8) 不适用 6.6* 7.1 8.0 请参见以下的备注^ 2026 年 11 月* N/A
OpenJDK 11 不适用 不适用 7.6 8.0 9.0 2024 年 10 月 2027 年 10 月
OpenJDK 17 不适用 不适用 不适用 8.4 9.0 2027 年 10 月 N/A
OpenJDK 21 N/A 不适用 N/A 8.9 9.3 2029 年 12 月 N/A

重要备注

  • 为什么 OpenJDK 8 的支持时间比 OpenJDK 11 长?
  • 因为其生命周期已结束,OpenJDK 8 现在已不在 RHEL 6 上被支持。因此 1.8.0_275 是最后一个在 RHEL 6 中可用的 OpenJDK 8 更新。为了继续获得对 OpenJDK 的支持,需要使用 RHEL 7, 8 或 9。
  • 根据上述 OpenJDK 8 生命周期日期,RHEL 9 支持 OpenJDK 8。请注意,RHEL 9 中系统默认的 OpenJDK 是 OpenJDK 11,所有属于 RHEL 9 发行版本一部分的 Java 应用程序都只适用于 OpenJDK 11。RHEL 9 中的 OpenJDK 8 可用于任何自包含的 Java 应用程序(使用 OpenJDK 8),它们不依赖于基本 RHEL 9 中的 Java 组件。
  • OpenJDK 11 包括 ELS-1 支持阶段(可选的,付费扩展服务)。有关 ELS-1 的更多信息,请参阅生命周期阶段
  • OpenJDK 21 发行版本不再包括与发行版本 (Windows 和 RHEL RPM) 捆绑的 JMC (Java Mission Control)。请参阅 JDK 21 中的 JDK Mission Control (JMC) 在哪里?

OpenJDK 生命周期日期和 Windows 版本

Windows Server 2012 R2 支持 Windows Server 2016 支持 Windows 10 和 11 支持 Windows Server 2019 支持 增加了 Windows Server 2022 的支持 OpenJDK 版本的全面支持结束 ELS-1 支持阶段结束
OpenJDK 8 (1.8) 2018 年 8 月 2018 年 8 月 2018 年 12 月 2020 年 2 月 2021 年 9 月 2026 年 11 月 N/A
OpenJDK 11 2018 年 10 月 2018 年 10 月 2018 年 12 月 2020 年 2 月 2021 年 9 月 2024 年 10 月 2027 年 10 月
OpenJDK 17 2021 年 11 月 2021 年 11 月 2021 年 11 月 2021 年 11 月 2021 年 11 月 2027 年 10 月 N/A
OpenJDK 21 N/A 2023 年 11 月 2023 年 11 月 2023 年 11 月 2023 年 11 月 2029 年 12 月 N/A

重要备注

OpenJDK 权利

Java workloads on OpenJDK 权利包括在 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 General Public License (GNU GPL 2 和 2+) 发行(包括一些例外)。

Eclipse Temurin 由 Adoptium 发布。它通过其网站、API 和 marketplace 为不同的平台以二进制文件和安装程序发布,并在 DockerHub 上作为官方 Docker 镜像进行分发。

Oracle 领导 Java Platform SE 的开发并对 OpenJDK 项目做出了大量贡献。红帽是该项目中除 Oracle 以外的重要贡献者之一。如需了解更多信息,请参阅 Overview and Development model of Java Platform SE

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

Eclipse Temurin 生命周期和支持政策

对于一个主版本的 Eclipse Temurin,从其首先发布时最少提供六年的支持。红帽为选择的 Eclipse Temurin 二进制文件、Linux x86_64、Linux aarch64、Windows 32 位和 Windows 64 位版本提供企业级的支持,对 macOS x64 和 aarch64 版本提供开发人员支持。它们在以下指定的具体 Linux、Windows 和 Mac 平台上被支持。

如果底层平台的过期时间早于 OpenJDK 版本的过期时间,则这个 OpenJDK 版本在底层平台过期时可能不再被支持。当前,有三个活跃的主要版本,但我们建议用户在可行的情况下尽快迁移到 OpenJDK 的最新版本,以继续获得更新和支持。

Eclipse Temurin 生命周期 Linux x86_64 和 aarch64 版本

RHEL 8.x 支持 RHEL 9.x 支持 Ubuntu 22.04.x 支持 Ubuntu 20.04.x 支持 Ubuntu 18.04.x 支持 SLES 15 支持 结束了对 Eclipse Temurin 的支持
OpenJDK 8 Y Y Y Y Y Y 2026 年 11 月
OpenJDK 11 Y Y Y Y Y Y 2024 年 10 月
OpenJDK 17 Y Y Y Y Y Y 2027 年 10 月
OpenJDK 21 Y Y Y Y Y Y 2029 年 12 月

Windows 32 位和 64 位版本的 Eclipse Temurin 生命周期

Windows Server 2012 R2 支持 Windows Server 2016 支持 Windows 10 和 11 支持 Windows Server 2019 支持 增加了 Windows Server 2022 的支持 结束了对 Eclipse Temurin 的支持
OpenJDK 8 Y Y Y Y Y 2026 年 11 月
OpenJDK 11 Y Y Y Y Y 2024 年 10 月
OpenJDK 17 Y Y Y Y Y 2027 年 10 月
OpenJDK 21 N/A Y Y Y Y 2029 年 12 月

macOS 版本的 Eclipse Temurin 生命周期

macOS 11 macOS 12 macOS 13 macOS 14 结束了对 Eclipse Temurin 的支持
OpenJDK 8 仅限 x64 仅限 x64 仅限 x64 N 2026 年 11 月
OpenJDK 11 Y Y Y Y 2024 年 10 月
OpenJDK 17 Y Y Y Y 2027 年 10 月
OpenJDK 21 Y Y Y Y 2029 年 12 月

Eclipse Temurin 支持的权利

Eclipse Temurin 的权利与 Red Hat 构建的 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 订阅。

常见问题解答及参考信息

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

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

Developer Support 的 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 同时安装。为了方便客户,红帽还通过 Supplementary 频道提供了 IBM JDK。请注意,IBM JDK 不是 RHEL 内容集的组成部分,它遵循 IBM 关于更新和生命周期的指导。我们建议使用 alternatives 工具程序[1] 来配置 OpenJDK 或第三方 Java。

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

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

尽管红帽会根据情况来尽力支持较早的版本,但用户可能有必要将系统更新到最新版本,以帮助重现和发现问题。根据 SLA 的规定,红帽会将版本之间的任何二进制代码不兼容的问题视为程序错误,并将尝试提供相应的程序错误修复。例外情况包括(但不限于):我们需要修补软件包中的安全漏洞,而无法避免二进制兼容性的问题。这些情况非常罕见,并会在勘误中有明确记录。

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

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

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

Oracle 未公布源代码的二进制插件(plugs)是否被支持?

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

红帽是否进行 TCK 测试?

是的,我们会运行由 Oracle 提供的 TCK 测试套件。只要有代码更改,我们就会运行 TCK 以确保 OpenJDK 符合 Java 规范。

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

我们的目的是支持长期支持版本(Long Term Support Releases),因此红帽没有发布 Java SE 9 和 10,但发布了基于 Java SE 11 的 OpenJDK 发行版本。如需了解更多信息,请参阅 Red Hat OpenJDK 11 Advice

红帽是否提供 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 Middleware 产品的生命周期有何关系?

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 和 Middleware 产品权利中?

是。

客户门户中提供的 Windows OpenJDK 是否与developers.redhat.com 中提供的具有相同的二进制代码?

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

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

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

红帽构建的 OpenJDK 版本是否包含 Java Web Start?

包括。红帽构建的用于 RHEL 和 Windows 的OpenJDK 版本 8 中包括 Java Web Start 支持。

红帽是否提供对 Applet 的支持?

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

适用于 Windows 的 OpenJDK 的 Red Hat 版本是否支持 Shenandoah GC?

是的,Red Hat 为 Windows 构建的 OpenJDK 支持 Shenandoah 垃圾收集器。要了解包含哪些版本,请查看上面列出的所有配置的位置。

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

它们的区别包括在此文档

[1] 使用 alternatives 管理不同的 JDK: 什么是 alternatives 系统?我如何管理它?

Comments