Red Hat build of OpenJDK 17.0.2 发行注记
前言
Open Java Development Kit (OpenJDK)是 Java Platform, Standard Edition (Java SE)的一个免费的开源实现。红帽构建的 OpenJDK 在三个版本中提供:8u、11u 和 17u。
红帽构建的 OpenJDK 软件包在 Red Hat Enterprise Linux 和 Microsoft Windows 上提供,并作为红帽生态系统目录中的 JDK 和 JRE 提供。
提供有关红帽构建的 OpenJDK 文档的反馈
要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 红帽构建的 OpenJDK 支持政策
红帽在其产品中支持选择版本的 OpenJDK 的主版本。为了实现一致性,这些版本与指定为长期支持 (LTS) 的 Oracle JDK 版本类似。
自首次引入该版本起,红帽构建的 OpenJDK 主版本将最少提供六年的支持。如需更多信息,请参阅 OpenJDK 生命周期和支持政策
RHEL 6 于 2020 年 11 月结束其生命周期。因此,红帽构建的 OpenJDK 不支持 RHEL 6 作为支持的配置。
第 2 章 与上游 OpenJDK 17 的不同
Red Hat 在 Red Hat Enterprise Linux 中构建 OpenJDK 包含了很多来自 OpenJDK 上游发行版的结构更改。红帽构建的 Microsoft Windows 版本尝试尽快遵循 Red Hat Enterprise Linux 更新。
以下列表详细介绍了最显著的 OpenJDK 17 更改:
- FIPS 支持。Red Hat build of OpenJDK 17 会自动检测 RHEL 是否处于 FIPS 模式,并自动配置 Red Hat build of OpenJDK 17 以在该模式下运行。此更改不适用于适用于 Microsoft Windows 的红帽构建的 OpenJDK 构建。
- 加密策略支持。Red Hat build of OpenJDK 17 从 RHEL 系统配置获取启用的加密算法和密钥大小限制列表。这些配置组件由传输层安全(TLS)加密协议、证书路径验证和任何签名的 JAR 使用。您可以设置不同的安全配置集来平衡安全性和兼容性。此更改不适用于适用于 Microsoft Windows 的红帽构建的 OpenJDK 构建。
-
RHEL 上的红帽构建的 OpenJDK 会动态链接到原生库,如
zlib
用于归档格式支持,libjpeg-turbo
、libpng
和giflib
用于镜像支持。RHEL 还动态链接Harfbuzz
和Freetype
用于字体渲染和管理。此更改不适用于适用于 Microsoft Windows 的红帽构建的 OpenJDK 构建。 -
src.zip
文件包含红帽构建的 OpenJDK 附带的所有 JAR 库的源。 - RHEL 上的红帽 OpenJDK 构建使用系统范围的时区数据文件作为时区信息的来源。
- RHEL 上的红帽构建的 OpenJDK 使用系统范围的 CA 证书。
- Microsoft Windows 上的红帽构建的 OpenJDK 包括 RHEL 的最新可用时区数据。
- Microsoft Windows 上的红帽构建的 OpenJDK 使用 RHEL 的最新可用 CA 证书。
其他资源
第 3 章 OpenJDK 功能
最新的 Red Hat build of OpenJDK 17 发行版本可能包括新功能。另外,最新版本可能会增强、弃用或删除来自以前红帽构建的 OpenJDK 17 版本的功能。
有关所有其他更改和安全修复,请参阅 OpenJDK 17.0.2 发行版本。
3.1. 新功能及功能增强
查看以下发行注记以了解红帽构建的 OpenJDK 17.0.2 发行版本中包含的新功能和功能增强:
IANA 时区数据库
互联网编号分配机构(IANA)将其时区数据库更新至 2021c 版本。Red Hat OpenJDK 日期和时间库依赖于 IANA 的时区数据库来确定全球各种区域的本地时间。
2021b 发行版本的 Time Zone Database 更新了时区规则,这些规则在 1970 之前存在。有关 2021b 发行版本的更多信息,请参阅 2021b 发布 tz 代码和数据。
有关 IANA 2021c Time Zone 数据库发行版本的更多信息,请参阅 JDK-8274857。
有关 IANA 时区数据库的更多信息,请参阅 IANA 网站上的时区数据库。https://www.iana.org/time-zones
3.2. OpenJDK 的改进
Red Hat build of OpenJDK 17 为最初在以前版本的 OpenJDK 版本中创建的功能提供改进。
OpenJDK 对 Microsoft Windows 版本进行标识
在红帽构建的 OpenJDK 17 版本前,从 System.getProperty ()
检索的 os.name
系统属性,HotSpot 错误日志会在 Microsoft Windows 11 和 Windows Server 2022 上报告 Windows 10.0
on Microsoft Windows 11 和 Windows Server 2019
。红帽构建的 OpenJDK 现在标识了这些系统上的正确版本。
系统属性行为更改
红帽构建的 OpenJDK 17 将 file.encoding
系统属性的行为恢复到与大多数支持的平台上的红帽构建的 OpenJDK 11 相同的状态,但 macOS 除外。这个变化改进了系统属性在 Microsoft Windows 平台上的行为方式,系统区域设置和用户区域设置有所不同。
有关对 file.encoding
系统属性的行为更改的更多信息,请参阅 JDK-8275343。
向量类更新
Red Hat build of OpenJDK 17 更新 java.util.Vector
类,因此此类现在会在 deserialization 过程中报告使用 java.io.ObjectInputStream.GetField.get (name, object)
方法生成的任何 ClassNotFoundException
信息。当向量的类(嵌套在元素内)时,这些异常消息不会被找到。
在 java.util.Vector
类更新之前,当之前详细事件发生时,类会报告任何 StreamCorruptedException
信息。StreamCorruptedException
消息没有提供有关缺失类的信息。
有关 java.util.Vector
类的更新的更多信息,请参阅 JDK-8277157。
z Garbage Collector 程序错误修复
在红帽构建的 OpenJDK 17 更新前,ZGC 经历了 Concurrent Process Non-strong References times,这会导致使用 ZGC 进行内存管理的 Java 应用程序的延迟和吞吐量问题。您可以通过在命令行界面中输入 -Xlog:gc*
,针对垃圾收集器(GC)日志来确定这些长度的时间。
Red Hat build of OpenJDK 17 发行版本删除了造成这些问题的错误,因此 ZGC 现在可以获得较短的 Concurrent Process Non-strong References 时间。
有关 ZGC 程序错误修复的更多信息,请参阅 JDK-8277533。
3.3. 弃用和删除的功能
查看以下发行注记以了解在 Red Hat build of OpenJDK 17.0.2 发行版本中已弃用或删除的预先存在的功能:
Google GlobalSign root certificate
Red Hat build of OpenJDK 17.0.2 从 cacerts
密钥存储中删除以下 root 证书:
- 别名名称
- globalsignr2ca [jdk]
- 可区分名称
- CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
有关删除 Google GlobalSign root 证书的更多信息,请参阅 JDK-8272535。
第 4 章 已知问题
Red Hat build of OpenJDK 17 可能包括已知问题。其中一些已知问题可能存在解决方案。
调试软件包移到 RHEL 8.5 CodeReady Linux Builder (CRB)存储库
- 描述
RHEL 8.5 将
java-17-openjdk-slowdebug-debuginfo
和java-17-openjdk-fastdebug-debuginfo
软件包移到 CodeReady Linux Builder (CRB)存储库,其中java-openjdk-slowdebug
和java-openjdk-fastdebug
软件包已位于。此存储库包含开发人员软件包。红帽计划将这些软件包移到 RHEL 8.5 生命周期中的 CRB 存储库。但是,不会发生此移动。当这些软件包位于 AppStream 存储库中时,您可能已安装了
java-17-openjdk-slowdebug-debuginfo
和java-17-openjdk-fastdebug-debuginfo
软件包。您可以通过在 CLI 中运行以下命令来检查是否安装了
java-17-openjdk-slowdebug-debuginfo
或java-17-openjdk-fastdebug-debuginfo
软件包:Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -qa | grep java-.*debug-debuginfo
$ rpm -qa | grep java-.*debug-debuginfo
您可以继续使用
java-17-openjdk-slowdebug-debuginfo
和java-17-openjdk-fastdebug-debuginfo
软件包用于 Java 应用程序上的调试目的,但您必须启用 CRB 存储库来接收这些软件包的更新。- 临时解决方案
如果安装了
java-17-openjdk-slowdebug-debuginfo
和java-17-openjdk-fastdebug-debuginfo
软件包,则需要选择以下选项之一:在 CLI 中运行以下命令来卸载这些软件包:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf remove java-17-openjdk-<package-name>
$ dnf remove java-17-openjdk-<package-name>
在 CLI 中运行以下命令来启用 CRB 存储库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf config-manager --set-enabled rhel-8-crb-debug-rpms
$ dnf config-manager --set-enabled rhel-8-crb-debug-rpms
重要红帽不完全支持 CRB 仓库中包含的软件包。确保您了解在 Java 应用程序中使用任何不支持的调试软件包的潜在风险。
有关 RHEL 8.5 上的 CRB 存储库的更多信息,请参阅 Red Hat Enterprise Linux 文档中的 软件包清单 指南。
第 5 章 与本发行版本相关的公告
以下公告已针对程序错误修正以及本发行版本中包括的 CVE 修复:
更新于 2024-05-04