Oracle JDK 和 OpenJDK 的对比
可能在看这个问题之前很多人和我一样并没有接触和使用过 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 版本将每三年发布一次,而 OpenJDK 版本每三个月发布一
次;2. OpenJDK 是一个参考模型并且是完全开源的,而 Oracle JDK 是
OpenJDK 的一个实现,并不是完全开源的;
3. Oracle JDK 比 OpenJDK 更稳定。OpenJDK 和 Oracle JDK 的代码几乎
相同,但 Oracle JDK 有更多的类和一些错误修复。因此,如果您想开发
企业/商业软件,我建议您选择 Oracle JDK,因为它经过了彻底的测试和
稳定。某些情况下,有些人提到在使用 OpenJDK 可能会遇到了许多应
用程序崩溃的问题,但是,只需切换到 Oracle JDK 就可以解决问题;
4. 顶级公司正在使用 Oracle JDK,例如 Android Studio,Minecraft 和
IntelliJ IDEA 开发工具,其中 Open JDK 不太受欢迎;
5. 在响应性和 JVM 性能方面,Oracle JDK 与 OpenJDK 相比提供了更好的
性能;
6. Oracle JDK 不会为即将发布的版本提供长期支持,用户每次都必须通过
更新到最新版本获得支持来获取最新版本;
7. Oracle JDK 根据二进制代码许可协议获得许可,而 OpenJDK 根据 GPL
v2 许可获得许可。