Microsoft Build of OpenJDK 的发行说明

本文列出了 Microsoft Build of OpenJDK 包版本中包含的修复程序,以及要在上游合并的特定于 Microsoft 的增强功能。

已知问题

OpenJDK 17

  • 在 Alpine Linux 3.19.0 或更高版本上运行 Alpine x64 (musl) 版本时,不支持 SecureDirectoryStream。

OpenJDK 11

  • 在 Alpine Linux 3.19.0 或更高版本上运行 Alpine x64 (musl) 版本时,不支持 SecureDirectoryStream。

OpenJDK 21

OpenJDK 21.0.7

改进/附加修复

  • JDK-8350609 的回移植:清理 Windows 上的未知展开操作码(0xB)
  • 在 Windows 版本中启用 GPU 选择提示,使用 NvOptimusEnablementAmdPowerXpressRequestHighPerformance
    • 导出的驱动程序提示首选 JVM 中的高性能 GPU (NVIDIA/AMD)
    • 在 Minecraft、IDE 或 ML 工具等环境中非常有用,以确保 GPU 利用率

OpenJDK 21.0.6

改进/附加修复

  • JDK-8338136 的回移植:HotSpot 应在 Windows 上支持多个大型页面大小
  • JDK-8345296:AArch64:当不允许使用 prctl 时,VM 因 SIGILL 崩溃。
  • JDK-8335977 的反向移植:由于断言“对象应已重新分配”而导致取消优化失败
  • JDK-8340454:C2 EA 断言,“以前的可减少 Phi 在 SUT 之前不再可减少”

OpenJDK 21.0.5

增强功能

  • 删除了对未记录的 Windows API(NtCreateKeyedEvent、NtReleaseKeyedEvent、NtWaitForKeyedEvent)的调用。
  • JDK-8334475 的向后移植:UnsafeIntrinsicsTest.java#ZGenerationalDebug assert(!assert_on_failure) 失败:已设置低位字节。

OpenJDK 21.0.4

增强功能

  • 使热点能够使用 Windows 11/Windows Server 2022 及更高版本上的所有 Windows 处理器组中的处理器。

OpenJDK 21.0.3

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 包括一个新的 JFR 事件,用于跟踪编译器队列的利用率(反向移植自 JDK-8317562)。

OpenJDK 21.0.2

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 包括一个新的 JFR 事件,用于跟踪编译器队列的利用率(反向移植自 JDK-8317562)。

OpenJDK 21.0.1

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

已知问题

  • AArch64 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 21.0.0

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

已知问题

  • AArch64 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17

OpenJDK 17.0.15

改进/附加修复

  • JDK-8350609 的回移植:清理 Windows 上的未知展开操作码(0xB)

OpenJDK 17.0.14

改进/附加修复

  • JDK-8338136 的回移植:HotSpot 应在 Windows 上支持多个大型页面大小
  • JDK-8345296:AArch64:当不允许使用 prctl 时,VM 因 SIGILL 崩溃。
  • JDK-8335977 的反向移植:由于断言“对象应已重新分配”而导致取消优化失败
  • JDK-8340454:C2 EA 断言,“以前的可减少 Phi 在 SUT 之前不再可减少”

OpenJDK 17.0.13

增强功能

  • 删除了对未记录的 Windows API(NtCreateKeyedEvent、NtReleaseKeyedEvent、NtWaitForKeyedEvent)的调用。

OpenJDK 17.0.12

增强功能

  • 使热点能够使用 Windows 11/Windows Server 2022 及更高版本上的所有 Windows 处理器组中的处理器。
  • 默认情况下禁用 G1 预防性集合。

OpenJDK 17.0.11

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 在 Windows 上添加了对将 SST 文件作为密钥库使用的支持(请参阅 JDK-8306688),可以通过以下属性启用此功能:

    -Dsun.security.mscapi.enableSST=true

OpenJDK 17.0.10

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 在 Windows 上添加了对将 SST 文件作为密钥库使用的支持(请参阅 JDK-8306688),可以通过以下属性启用此功能:

    -Dsun.security.mscapi.enableSST=true

OpenJDK 17.0.9

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 在 Windows 上添加了对将 SST 文件作为密钥库使用的支持(请参阅 JDK-8306688),可以通过以下属性启用此功能:

    -Dsun.security.mscapi.enableSST=true

  • JDK-8303607 SunMSCAPI 提供程序的后移植会泄漏内存和密钥

已知问题

  • AArch64 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.8

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 现在默认情况下启用此功能。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:-ReduceAllocationMerges

已知问题

  • AArch64 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.7

增强功能

  • 增加一项实验性功能,通过增加标量替换的机会来提高转义分析的性能。 若要启用此功能,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockExperimentalVMOptions -XX:+ReduceAllocationMerges

已知问题

  • AArch64 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.6

增强功能

  • 增加一项实验性功能,通过增加标量替换的机会来提高转义分析的性能。 若要启用此功能,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockExperimentalVMOptions -XX:+ReduceAllocationMerges

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.5

增强功能

  • 增加了一项实验性功能,通过增加标量替换的机会来提高转义分析的性能。 若要启用此功能,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockExperimentalVMOptions -XX:+ReduceAllocationMerges

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.4.1

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.4

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.3

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 17.0.2

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。
  • RPM 包可能不会自动更新。 运行 yum install msopenjdk-17-17.0.2+8_LTS-1 以强制更新到最新版本。

OpenJDK 17.0.1

已知问题

  • AArch64 的二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。
  • RPM 包可能不会自动更新。 运行 yum install msopenjdk-17-17.0.1+12_LTS-1 以强制更新到最新版本。

OpenJDK 17.0.0

OpenJDK 11

OpenJDK 11.0.27

改进/附加修复

  • 没有其他增强功能/修复。

OpenJDK 11.0.26

改进/附加修复

  • JDK-8335977 的反向移植:由于断言“对象应已重新分配”而导致取消优化失败
  • JDK-8340454:C2 EA 断言,“以前的可减少 Phi 在 SUT 之前不再可减少”

OpenJDK 11.0.25

增强功能

  • 使热点能够使用 Windows 11/Windows Server 2022 及更高版本上的所有 Windows 处理器组中的处理器。

OpenJDK 11.0.24

增强功能

  • 使热点能够使用 Windows 11/Windows Server 2022 及更高版本上的所有 Windows 处理器组中的处理器。

OpenJDK 11.0.23

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 在 Windows 上添加了对将 SST 文件作为密钥库使用的支持(请参阅 JDK-8306688),可以通过以下属性启用此功能:

    -Dsun.security.mscapi.enableSST=true

  • 向后移植了以下增强功能和 bug 修复:

    • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统
    • JDK 飞行记录器

已知问题

  • macOS/AArch64 的二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.22

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 在 Windows 上添加了对将 SST 文件作为密钥库使用的支持(请参阅 JDK-8306688),可以通过以下属性启用此功能:

    -Dsun.security.mscapi.enableSST=true

  • 向后移植了以下增强功能和 bug 修复:

    • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统
    • JDK 飞行记录器

已知问题

  • macOS/AArch64 的二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.21

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockDiagnosticVMOptions -XX:-ReduceAllocationMerges

  • 在 Windows 上添加了对将 SST 文件作为密钥库使用的支持(请参阅 JDK-8306688),可以通过以下属性启用此功能:

    -Dsun.security.mscapi.enableSST=true

  • 向后移植了以下增强功能和 bug 修复:

    • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统
    • JDK 飞行记录器
    • JDK-8303607 SunMSCAPI 提供程序泄漏内存和密钥

已知问题

  • AArch64 的二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.20.1

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 此功能默认启用。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:-ReduceAllocationMerges

  • 向后移植了以下增强功能和 bug 修复:

    • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统
    • JDK 飞行记录器

已知问题

  • AArch64 的二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.20

增强功能

  • 包括新功能(请参阅 JDK-8287061JDK-8289943),通过增加标量替换的机会数来提高转义分析的性能。 现在默认情况下启用此功能。 若要禁用它,开发人员必须使用以下 JVM 标志:

    -XX:-ReduceAllocationMerges

  • 向后移植了以下增强功能和 bug 修复:

    • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统
    • JDK 飞行记录器

已知问题

  • AArch64 的二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.19

增强功能

  • 增加一项实验性功能,通过增加标量替换的机会来提高转义分析的性能。 若要启用此功能,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockExperimentalVMOptions -XX:+ReduceAllocationMerges

  • 向后移植了以下增强功能和 bug 修复:

    • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统
    • JFR
      • JDK-8226897 使用 JFR OldObjectSample 事件提供对象年龄 - Java Bug 系统
      • JDK-8232594 使 JFR 命令的输出持续时间更方便用户 - Java Bug 系统
      • JDK-8216041 [事件请求] - 取消优化 - Java Bug 系统

已知问题

  • AArch64 的二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.18

增强功能

  • 增加一项实验性功能,通过增加标量替换的机会来提高转义分析的性能。 若要启用此功能,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockExperimentalVMOptions -XX:+ReduceAllocationMerges

  • 向后移植了以下增强功能和 bug 修复:

    • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统
    • JFR
      • JDK-8226897 使用 JFR OldObjectSample 事件提供对象年龄 - Java Bug 系统
      • JDK-8232594 使 JFR 命令的输出持续时间更方便用户 - Java Bug 系统
      • JDK-8216041 [事件请求] - 取消优化 - Java Bug 系统

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.17

增强功能

  • 增加了一项实验性功能,通过增加标量替换的机会来提高转义分析的性能。 若要启用此功能,开发人员必须使用以下 JVM 标志:

    -XX:+UnlockExperimentalVMOptions -XX:+ReduceAllocationMerges

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.16.1

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.16

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.15

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.14.1

增强功能

  • 向后移植:JEP 391 macOS/AArch64 端口
  • 向后移植:JEP 386 Alpine Linux 端口

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.14

增强功能

  • 向后移植:JEP 391 macOS/AArch64 端口
  • 向后移植:JEP 386 Alpine Linux 端口

已知问题

  • 二进制文件没有默认 CDS (JEP 341) 存档。 运行 java -Xshare:dump 以在安装完成后生成这些文件。

OpenJDK 11.0.13

OpenJDK 11.0.12

增强功能

OpenJDK 11.0.11

OpenJDK 11.0.11 中安全修补程序和其他修补程序的列表

增强功能

  • JDK-8250902 在 x86 上实现 MD5 内建函数 - Java Bug 系统

提供有关 Microsoft Build of OpenJDK 的反馈

向我们发送你的评论、想法和意见,帮助我们改进 Microsoft Build of OpenJDK。 请访问 GitHub 上的 OpenJDK 讨论页面 ,向我们发送反馈。

Java 和 OpenJDK 是 Oracle 及其关联公司的商标或注册商标。

其他版本

OpenJDK 16.0.2

增强功能