OpenJDK项目主要基于Sun捐赠的HotSpot源代码。此外,OpenJDK被选为Java 7的参考实现,由Oracle工程师维护。关于 JVM,JDK,JRE 和 OpenJDK 之间的区别,Oracle博客帖子在2012年有一个更详细的答案:
问:Open JDK存储库中的源码与用于构建Oracle JDK的代码之间有什么区别?
答:非常接近。我们的Oracle JDK版本构建过程基于OpenJDK 7构建,只添加了几个部分,例如部署代码,其中包括Oracle的Java 插件和Java WebStart的实现,以及一些封闭的源代码派对组件,如图形光栅化器,一些开源的第三方组件,如 Rhino,以及一些零碎的东西,如附加文档或第三方字体。展望未来,我们的目的是开源Oracle JDK的所有部分,除了我们考虑商业功能的部分。
1. Oracle JDK大概每6 个月发一次主要版本,而OpenJDK 版本大概每三个月发布一次。但这不是固定的,我觉得了解这个没啥用处。
2. Open JDK是一个参考模型并且是完全开源的,而Oracle JDK是OpenJDK的一个实现,并不是完全开源的。
3. Oracle JDK比 OpenJDK更稳定。Open JDK和Oracle JDK的代码几乎相同,但Oracle JDK 有更多的类和一些错误修复。因此,如果您想开发企业/商业软件,我建议您选择Oracle JDK,因为它经过了彻底的测试和稳定。某些情况下,有些人提到在使用 Open JDK可能会遇到许多应用程序崩溃的问题,但是,只需切换到 Oracle JDK 就可以解决问题。
4. 在响应性和JVM 性能方面,Oracle JDK与OpenJDK相比提供了更好的性能。
5. Oracle JDK不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本。
6. Oracle JDK根据二进制代码许可协议获得许可,而 OpenJDK根据GPL v2许可获得许可。