Red Hat build of OpenJDK 17.0.14 发行注记


Red Hat build of OpenJDK 17

Red Hat Customer Content Services

摘要

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

前言

Open Java Development Kit (OpenJDK)是 Java Platform, Standard Edition (Java SE)的一个免费的开源实现。红帽构建的 OpenJDK 有四个版本:8u、11u、17u 和 21u。

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

提供有关红帽构建的 OpenJDK 文档的反馈

要报告错误或改进文档,请登录您的红帽 JIRA 帐户并提交问题。如果您没有红帽 JIRA 帐户,系统会提示您创建一个帐户。

流程

  1. 单击以下链接 来创建 ticket
  2. Summary 中输入有关此问题的简单描述。
  3. 提供有关 描述 中问题或增强功能的详细描述。包括一个 URL,以在文档中发生问题。
  4. Create 创建并将问题路由到适当的文档团队。

使开源包含更多

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

第 1 章 红帽构建的 OpenJDK 支持政策

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

自首次推出该版本时,红帽构建的 OpenJDK 的主版本将最少提供六年。如需更多信息,请参阅 OpenJDK 生命周期和支持政策

注意

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

第 2 章 与上游 OpenJDK 17 的不同

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

以下列表详细介绍了红帽构建的 OpenJDK 17 更改:

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

第 3 章 Red Hat build of OpenJDK 功能

最新的 Red Hat build of OpenJDK 17 发行版本可能包括新功能。另外,最新版本可能会增强、弃用或删除来自以前红帽构建的 OpenJDK 17 版本的功能。

注意

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

Red Hat build of OpenJDK 的改进

Red Hat build of OpenJDK 17 为最初在以前的 Red Hat build OpenJDK 版本中创建的功能提供改进。

修复 调用dynamic 字符串串联更改操作顺序

OpenJDK 9 到 JEP-280 添加的 Indify String Concatenation 功能按字符串串联表达式被评估的顺序引入了一个回归。Java 语言规范 要求以左到右顺序完全评估操作对象。但是,引入 invokedynamic (indy)调用由 javac 编译器生成,用于评估字符串串联表达式,所有操作对象都会按顺序评估,但不会转换为字符串。在这种情况下,每个操作对象仅在稍后转换为字符串。

例如,请考虑以下代码,其中串联的第三个参数具有将 构建器 的值更改为 "goodbye" 的副作用:

StringBuilder builder = new StringBuilder("good");
return "" + builder + builder.append("bye");
Copy to Clipboard Toggle word wrap

根据前面的例子,在早期版本中,Indify String Contenation 功能不会将第二个参数转换为字符串,直到 builder.append 方法更改了 StringBuilder 对象。在这种情况下,串联会错误地成为 "" + "goodbye" + "goodbye",这会生成 "goodegoodbye" 作为输出。

在 OpenJDK 17.0.14 的 Red Hat 构建中,字符串串联评估和立即将每个参数转换为字符串(按左到右的顺序)。在这种情况下,串联可以正确地变为 "" + "good" + "goode",这会生成 "goodbye" 作为输出。

注意

这个问题的解决方法与使用 OpenJDK 9 之前提供的 javac 编译器版本相同,或使用 -XDstringConcat=inline 命令行选项运行 javac

请参阅 JDK-8273914 (JDK Bug System)

jar 命令的选项,以避免在提取存档时覆盖文件

在以前的 Red Hat build of OpenJDK 版本中,当 jar 工具从存档中提取文件时,jar 工具会在目标目录中使用相同名称来覆盖任何现有文件。

Red Hat build of OpenJDK 17.0.14 添加了一个 new -k (或 --keep-old-files)选项,您可以使用它来确保 jar 工具不会覆盖现有文件。您可以使用短或长格式指定这个新选项。

例如:

  • JAR xkf myfile.jar
  • JAR --extract --keep-old-files --file myfile.jar
注意

在 OpenJDK 17.0.14 的 Red Hat build 中,jar 工具默认保留旧行为。如果您没有明确指定 the -k (or --keep-old-files)选项,jar 工具会自动覆盖具有相同名称的任何现有文件。

请参阅 JDK-8335912 (JDK Bug System) 和 JDK bug system reference ID: JDK-8337499。

IANA 时区数据库更新至 2024b 版本

在 OpenJDK 17.0.14 中,互联网编号分配机构(IANA)时区数据库的树内副本更新至 2024b 版本。这个版本主要关注改进墨西哥、Mongolia 和葡ugal 的历史数据。

对 IANA 数据库的这个更新还包括以下更改:

  • Asia/ChoibalsanAsia/Ulaanbaatar 的别名。
  • 欧洲时间(MET)时区等于中欧时间(CET)。
  • 有些旧的时间 ID 映射到地理位置的名称,而不是固定偏移:

    • 东部标准时间(EST)映射到 美国/巴马, 而不是-5 :00
    • Mountain Standard Time (MST)映射到 America/Phoenix 而不是 -7:00
    • Hawaii Standard Time (HST)被映射到 Pacific/Honolulu 而不是 -10:00

    红帽构建的 OpenJDK 通过保留现有的 fixed-offset 映射来覆盖旧时间 ID 映射的更改。

请参阅 JDK-8339637 (JDK Bug System)

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

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

更新于 2025-01-31

法律通告

Copyright © 2025 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.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat