猿问

Oracle JDK与OpenJDK的区别

Oracle JDK与OpenJDK的区别

注:本问题始于2014年。截至Java 11,OpenJDK和Oracle JDK正在融合。

Oracle和OpenJDK之间有什么重要的区别吗?

例如,垃圾收集和其他JVM参数是否相同?

GC在两者之间的工作方式不同吗?


开满天机
浏览 2485回答 3
3回答

慕尼黑的夜晚无繁华

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虚拟机列表

眼眸繁星

为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中还没有提供),并用开源替代替换受约束的第三方组件,以实现代码库之间的更紧密的均等。
随时随地看视频慕课网APP

相关分类

Java
我要回答