为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle JDK与OpenJDK的区别

Oracle JDK与OpenJDK的区别

开满天机 2019-07-11 13:22:07
Oracle JDK与OpenJDK的区别注:本问题始于2014年。截至Java 11,OpenJDK和Oracle JDK正在融合。Oracle和OpenJDK之间有什么重要的区别吗?例如,垃圾收集和其他JVM参数是否相同?GC在两者之间的工作方式不同吗?
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

OpenJDK和Oracle JDK目前只由Oracle创建和维护。

OpenJDK和Oracle JDK实现了通过TCK(Java技术认证工具包)的同一Java规范。

JDK的大多数供应商都是在OpenJDK的基础上编写的,它们对组件进行了一些调整(主要是为了替换授权的专有部件/用只在特定操作系统上工作的更高性能的项替换)组件,而不破坏TCK的兼容性。

许多供应商实现了Java规范,并通过了TCK。例如,IBMJ9、Azul Zulu、Azul Zing和Oracle JDK。

几乎所有现有的JDK都来自OpenJDK。

正如许多人所建议的,授权是JDK之间的一种改变。

从JDK 11访问长期支持开始,Oracle JDK/JavaSE现在将需要一个商业许可证。现在您应该注意在没有订阅的情况下作为Oracle JDK安装的JDK可能会停止工作。来源

参考文献:Java虚拟机列表


查看完整回答
反对 回复 2019-07-11
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

Java 7没什么重要的。OpenJDK项目主要基于热点Sun捐赠的源代码。

此外,OpenJDK被选为Java 7的参考实现由甲骨文工程师维护。

从2012年开始有一个更详细的答案JVM、JDK、JRE和OpenJDK的区别,链接到甲骨文博客:

Q:在OpenJDK存储库中找到的源代码与用于构建Oracle JDK的代码有什么不同?

A:这是非常接近的-我们的Oracle JDK发行版的构建过程构建在OpenJDK 7之上,只添加了几个部分,比如部署代码,其中包括Oracle实现Java插件和Java Webstart,以及一些封闭源代码第三方组件,如图形RAsterizer、一些开源第三方组件(如Rhino),以及其他文档或第三方字体。接下来,我们的目的是开放Oracle JDK的所有部分,但那些我们认为是商业特性的部分除外,例如JRockit任务控制(Oracle JDK中还没有提供),并用开源替代替换受约束的第三方组件,以实现代码库之间的更紧密的均等。


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 2484 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信