OpenJDK 17.0.7 发行注记

OpenJDK 17

Red Hat Customer Content Services

摘要

OpenJDK 17.0.7 发行注记文档概述了 OpenJDK 17 中的新功能以及潜在的已知问题列表和可能的临时解决方案。

前言

OpenJDK(Open Java Development Kit)是 Java Platform, Standard Edition (Java SE) 的一个开源实现。红帽构建的 OpenJDK 在三个版本中提供:OpenJDK 8u、OpenJDK 11u 和 OpenJDK 17u。

红帽构建的 OpenJDK 软件包在 Red Hat Enterprise Linux 和 Microsoft Windows 上提供,并作为红帽生态系统目录中的 JDK 和 JRE 提供。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们感谢您对我们文档的反馈。要提供反馈,您可以突出显示文档中的文本并添加注释。

本节介绍如何提交反馈。

先决条件

  • 已登陆到红帽客户门户网站。
  • 在红帽客户门户中,以多页 HTML 格式查看文档。

流程

要提供反馈,请执行以下步骤:

  1. 点文档右上角的反馈按钮查看现有的反馈。

    注意

    反馈功能仅在多页 HTML 格式中启用。

  2. 高亮标记您要提供反馈的文档中的部分。
  3. 点在高亮文本旁弹出的 Add Feedback

    文本框将在页面右侧的"反馈"部分中打开。

  4. 在文本框中输入您的反馈,然后点 Submit

    创建了一个与文档相关的问题。

  5. 要查看问题,请单击反馈视图中的问题跟踪器链接。

第 1 章 OpenJDK 的支持政策

红帽在其产品中支持所选的 OpenJDK 主版本。为了实现一致性,这些版本与指定为长期支持 (LTS) 的 Oracle JDK 版本类似。

红帽自红帽首次引入 OpenJDK 后至少提供六年的 OpenJDK 主版本。

Microsoft Windows 和 Red Hat Enterprise Linux 支持 OpenJDK 17,直到 2027 年 11 月为止。

注意

RHEL 6 于 2020 年 11 月结束其生命周期。因此,OpenJDK 不支持 RHEL 6 作为支持配置。

第 2 章 与上游 OpenJDK 17 的不同

Red Hat Enterprise Linux 中的 OpenJDK 包含了来自 OpenJDK 上游发行版的许多结构更改。Microsoft Windows 版本尝试尽快遵循 Red Hat Enterprise Linux 更新。

以下列表详细介绍了最显著的 Red Hat OpenJDK 17 更改:

  • FIPS 支持。Red Hat OpenJDK 17 会自动检测 RHEL 是否处于 FIPS 模式,并自动配置 OpenJDK 17 以在该模式下运行。这个更改不适用于 Microsoft Windows 的 OpenJDK 构建。
  • 加密策略支持。Red Hat OpenJDK 17 从 RHEL 系统配置获取启用的加密算法和密钥大小限制列表。这些配置组件由传输层安全(TLS)加密协议、证书路径验证和任何签名的 JAR 使用。您可以设置不同的安全配置集来平衡安全性和兼容性。这个更改不适用于 Microsoft Windows 的 OpenJDK 构建。
  • RHEL 上的 Red Hat OpenJDK 会动态链接到原生库,如 zlib 用于归档格式支持,libjpeg-turbolibpnggiflib 用于镜像支持。RHEL 还动态链接 HarfbuzzFreetype 用于字体渲染和管理。这个更改不适用于 Microsoft Windows 的 OpenJDK 构建。
  • src.zip 文件包含 OpenJDK 附带的所有 JAR 库的源。
  • RHEL 上的 Red Hat OpenJDK 使用系统范围的时区数据文件作为时区信息的源。
  • RHEL 上的 Red Hat OpenJDK 使用系统范围的 CA 证书。
  • Microsoft Windows 上的 Red Hat OpenJDK 包括 RHEL 的最新可用时区数据。
  • Microsoft Windows 上的 Red Hat OpenJDK 使用 RHEL 的最新可用 CA 证书。

第 3 章 OpenJDK 功能

最新的 OpenJDK 17 发行版本可能包括新功能。另外,最新版本可能会增强、弃用或删除来自以前 OpenJDK 17 版本的功能。

注意

有关所有其他更改和安全修复,请参阅 OpenJDK 17.0.7 发行版本

OpenJDK 的改进

OpenJDK 17 为最初在 OpenJDK 版本中创建的功能提供增强。

Certigna (Dhimyotis) root 证书颁发机构 (CA) 证书

在 OpenJDK 17.0.7 中,cacerts truststore 包括 Certigna (Dhimyotis) root 证书:

  • 名称:Certigna (Dhimyotis)
  • 别名名称:certignarootca
  • 标识名称: CN=Certigna, O=Dhimyotis, C=FR

请参阅 JDK-8245654 (JDK Bug System)

新的 Java Flight Recorder (JFR)事件 jdk.InitialSecurityProperty

使用 OpenJDK 17.0.7 时,现在可在新的 JFR 事件 jdk.InitialSecurityProperty 中访问 java.security.Security 类加载的初始安全属性。

jdk.InitialSecurityProperty 事件包含以下两个字段:

  • Key :安全属性键。
  • value: 对应的安全属性值。

通过使用这个新事件和现有的 jdk.SecurityPropertyModification 事件,您现在可以在整个生命周期中监控安全属性。

在本发行版本中,当 -Djava.security.debug=properties 属性传递给 Java 虚拟机时,您还可以将初始安全属性输出到标准错误输出流。

请参阅 JDK-8292177 (JDK Bug System)

如果 java.security 文件无法加载,则抛出错误

在以前的版本中,如果 OpenJDK 无法加载 java.security 文件,则会使用一组硬编码的安全属性。这组属性没有完全维护,在使用时用户并不明确。

现在,对于 OpenJDK 17.0.7,如果 OpenJDK 无法加载 java.security 文件,OpenJDK 会显示 InternalError 错误消息。

请参阅 JDK-8155246 (JDK Bug System)

listRoots 方法返回 Windows 上所有可用驱动器

在以前的版本中,Windows 系统上的 java.io.File.listRoots() 方法过滤掉所有无法访问或者没有加载介质的磁盘驱动器。但是,这个过滤会导致可观察到的性能问题。

版本 OpenJDK 17.0.7 时,listRoots 方法会返回所有可用的磁盘驱动器未过滤。

请参阅 JDK-8208077 (JDK Bug System)

增强的 Swing 平台支持

在 OpenJDK 的早期版本中,html 对象标签呈现在 Swing HTML 组件中。在 OpenJDK 17.0.7 版本中,只有在将新系统属性 swing.html.object 设置为 true 时才会进行渲染。默认情况下,swing.html.object 属性设置为 false。

JDK 错误系统参考 ID: JDK-8296832。

第 4 章 与本发行版本相关的公告

以下公告包括了记录程序错误修复和 CVE 修复:

更新于 2023-05-02

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.