红帽提供了 Red Hat OpenJDK 8适用于 Windows 仅供开发使用(需要注册)。 AdoptOpenJDK 为 Windows (AdoptOpenJDK 8 Windows) 提供 OpenJDK 8 构建,没有任何限制。
当使用相同的版本/更新(例如 8u181)时,这两个软件包之间是否存在任何技术差异? “技术差异”是指缺少类/函数、不同的默认 JVM 设置等。
最佳答案
Red Hat 在与 AdoptOpenJDK 和任何其他开源 OpenJDK 8 构建完全相同的许可下提供 OpenJDK 8 Windows 二进制文件 - 在 GNU GPL v. 2 with classpath exception 下.有关“开发用途”的所有限制仅与可从 Red Hat 购买的订阅(支持)相关。
Red Hat OpenJDK 8 for Windows 和其他提到的构建之间的技术差异非常小,因为所有这些构建都通过了 TCK .通常,Red Hat 构建试图在行为上尽可能接近 RHEL 和 CentOS 中包含的 OpenJDK 8 包。
区别:
RH OpenJDK 8 构建是从 RHEL/CentOS 上使用的 OpenJDK RPM 包的源代码完成的。这些来源通常非常接近 upstream sources ,但包含一些更改(请参阅下面的要点)并且可能提前包含一些错误修复(RPM 补丁)。 RHEL/CentOS 更改可以在公开可用的 repo for CentOS RPM 中进行跟踪
RH OpenJDK 8 包括 Shenandoah garbage collector
RH OpenJDK 8 使用来自 RHEL/CentOS 的源作为依赖库(zlib、giflib、libjpeg-turbo、libpng、
nss( nss is not used anymore ))而不是(部分)源这些库包含在上游 jdk 源中的树中RH OpenJDK 8 中的 Elliptic Crypto 实现仅包括 3 个最流行的 elliptic curves - NIST P-256、NIST P-384 和 NIST P-521。
RH OpenJDK 8 使用来自 RHEL/CentOS 的根 CA 证书集
RH OpenJDK 8 可能使用稍新的时区数据 - 它取自 RHEL/CentOS
RH OpenJDK 8 包括 src.zip 文件中的所有 Java 源代码(IDE 使用它来允许浏览 jdk 代码),在上游构建中不包括这些源的大部分
<RH OpenJDK 8 不包含演示和示例
RH OpenJDK 8 包含一组字体文件
RH OpenJDK 8 中的所有 native 二进制文件均由 RH 证书签名
RH OpenJDK 8 安装程序包含 JavaFX implementation
RH OpenJDK 8 安装程序包含 WebStart implementation
资料来源:我在 RH 从事 OpenJDK Windows 构建工作。
关于java - AdoptOpenJDK 和 Red Hat OpenJDK for Windows 之间的技术差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52202807/