可能在看这个问题之前很多⼈和我⼀样并没有接触和使⽤过 OpenJDK 。那么 Oracle 和 OpenJDK 之间是否存在重⼤差异?下⾯我通过收集到的⼀些资料,为你解答这个被很多⼈忽视
的问题。

对于 Java 7,没什么关键的地⽅。OpenJDK 项⽬主要基于 Sun 捐赠的 HotSpot 源代码。此外,OpenJDK 被选为 Java 7 的参考实现,由 Oracle ⼯程师维护。关于 JVM,JDK,JRE 和 OpenJDK 之间的区别,Oracle 博客帖⼦在 2012 年有⼀个更详细的答案:

问:OpenJDK 存储库中的源代码与⽤于构建 Oracle JDK 的代码之间有什么区别?
答:⾮常接近 – 我们的 Oracle JDK 版本构建过程基于 OpenJDK 7 构建,只添加了⼏个部分,例如部署代码,其中包括 Oracle 的 Java 插件和 Java WebStart 的实现,以及⼀些封闭的源代码派对组件,如图形光栅化器,⼀些开源的第三⽅组件,如 Rhino,以及⼀些零碎的东⻄,如附加⽂档或第三⽅字体。展望未来,我们的⽬的是开源 Oracle JDK 的所有部分,除了我们考虑商业功能的部分。

总结:

  1. Oracle JDK ⼤概每 6 个⽉发⼀次主要版本,⽽ OpenJDK 版本⼤概每三个⽉发布⼀次。但这不是固定的,我觉得了解这个没啥⽤处。详情参⻅:https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-cadence
  2. OpenJDK 是⼀个参考模型并且是完全开源的,⽽ Oracle JDK 是 OpenJDK 的⼀个实现,并不是完全开源的;
  3. Oracle JDK ⽐ OpenJDK 更稳定。OpenJDK 和 Oracle JDK 的代码⼏乎相同,但 Oracle JDK 有更多的类和⼀些错误修复。因此,如果您想开发企业/商业软件,我建议您选择 Oracle JDK,因为它经过了彻底的测试和稳定。某些情况下,有些⼈提到在使⽤ OpenJDK 可能会遇到了许多应⽤程序崩溃的问题,但是,只需切换到 Oracle JDK 就可以解决问题;
  4. 在响应性和 JVM 性能⽅⾯,Oracle JDK 与 OpenJDK 相⽐提供了更好的性能;
  5. Oracle JDK 不会为即将发布的版本提供⻓期⽀持,⽤户每次都必须通过更新到最新版本获得⽀持来获取最新版本;
  6. Oracle JDK 根据⼆进制代码许可协议获得许可,⽽ OpenJDK 根据 GPL v2 许可获得许可。
最后修改日期: 2021年10月29日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。