注意:这个问题来自 2014 年。从 Java 11 开始,OpenJDK 和 Oracle JDK 正在融合。
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 可能会停止工作。资源
参考: Java 虚拟机列表