英文原文:https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#Diffs
尽管我们提到过要让 OpenJDK 和 Oracle JDK 二进制文件尽可能接近一致,但是至少对于 JDK 11,两者之间仍然存在若干差异。
当前的差异是:
只有 Oracle JDK 提供 Solaris,只有 OpenJDK 提供 Alpine Linux。
Oracle JDK提供“安装程序”(msi、rpm、deb等),它不仅将JDK二进制文件放在您的系统中,而且还包含更新规则,在某些情况下处理一些常见的配置,比如设置公共环境变量(例如,Windows中的JAVA_HOME)和建立文件关联(例如AS,使用Java启动.jar文件)。OpenJDK 只提供压缩包(TAR.GZ或.zip)。
javac --release 9
与javac --release 10
行为不一样。Oracle JDK 二进制文件包括的一些APIs 如 javafx、资源管理及 (JDK 11 之前修改的) JFR APIs 未添加到 OpenJDK 二进制文件中。Oracle JDK 提供 "JDK" and "JRE". OpenJDK 只提供 "JDK".
使用日志只能在 Oracle JDK 中使用。
如果 OpenJDK 使用 -XX:+UnlockCommercialFeatures 会抛出异常并崩溃。 Oracle JDK 不再需要这个选项,如果用了会输出警告信息,但是会继续运行。
Oracle JDK 要求第三方加密提供程序使用 Oracle 提供的证书进行签名。 OpenJDK 将继续允许使用未签名的第三方加密提供者。
java -version
的输出会不同。 Oracle JDK will say java and include LTS. OpenJDK(当由 Oracle 开发时)将称为 OpenJDK,而不包括 Oracle 特定的 LTS 标识。Oracle JDK将在 OTN 许可下发布。任何许可证文件都需要指向OTN。OpenJDK 将在 GPLV2WCP 许可下发布,并将包含 GPL 许可证。
Oracle JDK 将在 FreeType 许可下分发 FreeType ,OpenGDK 将在 GPLV2 下分发 FreeType。因此 \legal\java.desktop\freetype.md 内容会不同。
Oracle JDK有 Java 杯子和蒸汽图标(译者 : image:https://www.java.com/ga/images/auto/1371159372900?image=true[Java 商标] ),OpenJDK有Duke图标(译者:image:http://openjdk.java.net/images/duke-thinking.png[OpenJDK商标] )。
Oracle JDK source code includes "ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms." and OpenJDK source includes the GPL.