NOTE: This question is from 2014. As of Java 11 OpenJDK and Oracle
JDK are converging.
Oracle和OpenJDK之间是否存在重大差异?
例如,垃圾收集和其他JVM参数是否相同?
GC在两者之间的工作方式不同吗?
解决方法:
OpenJDK和Oracle JDK目前仅由Oracle创建和维护.
OpenJDK和Oracle JDK是通过TCK(Java技术认证工具包)的相同Java规范的实现.
JDK的大多数供应商都是在OpenJDK之上编写的,通过做一些调整来[主要是替换许可的专有部件/替换只能在特定操作系统上工作的更高性能项目],而不会破坏TCK的兼容性.
许多供应商实现了Java规范并通过了TCK.例如,IBM J9,Azul Zulu,Azul Zing和Oracle JDK.
几乎每个现有的JDK都派生自OpenJDK.
正如许多人所建议的,许可是JDK之间的变化.
从JDK 11开始访问长时间支持Oracle JDK / Java SE现在需要商业许可证.您现在应该注意您正在安装的JDK,因为没有订阅的Oracle JDK可能会停止工作. source
参考:List of Java virtual machines