OpenJDK与Java HotspotVM
OpenJDK虚拟机和Oracle热点虚拟机仍然是两个不同的JVM吗 我似乎找不到任何关于OpenJDK VM的官方文档。即使在OpenJDK主页中,也有一个开发HotSpot VM的HotSpot组 HotSpot组由参与HotSpot虚拟机的设计、实现和维护的开发人员组成 然而,如果我在我的Windows机器上检查java版本,它就会打印出来 Java热点(TM)64位服务器虚拟机 但是在我的Ubuntu VPS上 OpenJDK 64位服务器虚拟机OpenJDK与Java HotspotVM,java,jvm,openjdk,jvm-hotspot,hotspot,Java,Jvm,Openjdk,Jvm Hotspot,Hotspot,OpenJDK虚拟机和Oracle热点虚拟机仍然是两个不同的JVM吗 我似乎找不到任何关于OpenJDK VM的官方文档。即使在OpenJDK主页中,也有一个开发HotSpot VM的HotSpot组 HotSpot组由参与HotSpot虚拟机的设计、实现和维护的开发人员组成 然而,如果我在我的Windows机器上检查java版本,它就会打印出来 Java热点(TM)64位服务器虚拟机 但是在我的Ubuntu VPS上 OpenJDK 64位服务器虚拟机 如果这是两个不同的虚拟机,那么它们之间的
如果这是两个不同的虚拟机,那么它们之间的主要区别是什么?它们是否有不同的运行时标志集?Oracle HotSpot JVM基于OpenJDK HotSpot项目。因此,它们基本上都是相同的虚拟机,只是Oracle JVM有一些额外的商业特性,主要是协同内存管理 两个虚拟机的运行时标志几乎相同;使用查看完整的列表
-XX:+UnlockDiagnosticVMOptions -XX:+UnlockCommercialFeatures -XX:+PrintFlagsFinal
从JDK 8u131开始,唯一的区别在于以下标志(OpenJDK VM中没有):
tl;博士
这套系统现在已经过时了
对于Java 11等最新版本,Oracle JDK产品实际上与OpenJDK项目相同。OpenJDK现在包括Oracle以前的产品:、和
引述:
因此,从Java11开始,Oracle JDK构建和OpenJDK构建基本相同
oraclejdk与OpenJDK的融合
甲骨文在过去的几年里做出了巨大的改变
Oracle宣布他们打算将其品牌Oracle JDK与OpenJDK融合,以实现功能对等。两者都基于OpenJDK代码库
为此,以前的商业工具由Oracle出售,现在是开源的,并捐赠给OpenJDK项目。请参阅OpenJDK站点上的和
Oracle和OpenJDK联盟的其他成员贡献了更多的源代码,使OpenJDK代码库完全开源,不受GNU GPL+链接例外之外的许可证的限制
甲骨文有条款。Oracle JDK品牌产品在生产中不再免费使用。或者,您可以从超过六家供应商中的任何一家免费获得OpenJDK,其中包括一家来自Oracle的供应商。有关所有详细信息,请参阅Java社区支柱编写的这篇重要白皮书
我绘制此流程图是为了指导您选择JDK源代码
Oracle保留为紧急修复或安全漏洞修补其自有品牌产品的权利。但该公司已表示,他们也打算与其他OpenJDK成员一起做出贡献并进行协调。Oracle继续拥有Java商标,并领导Java平台的未来。对于现有版本8和11,Oracle已放弃()
热点与OpenJ9
这里的问题是:
OpenJDK虚拟机和Oracle热点虚拟机仍然是两个不同的JVM吗
如上所述,这两个产品在特征奇偶性上会合。关于技术,请继续阅读
HotSpot是Oracle JDK和OpenJDK中的一个组件,如上所述。今天的HotSpot还结合了来自的部件。Oracle合并了这两个Java引擎中最好的一个,从和中获得了它们
来自Eclipse基金会的项目(以前称为ApvoptEnjdk)还提供了一个使用JOB(基于J9,捐赠的)作为热点的替代物的OpenJDK的构建。从Adoptium网站下载时,您可以从菜单中选择HotSpot或OpenJ9
目前,测试似乎显示OpenJ9在使用更少内存的情况下启动速度显著加快,但HotSpot可能会在持续使用的情况下运行得更快。但是对于OpenJ9来说,现在还处于早期阶段,所以请自己调查一下最新的发展2014年回答了该问题可能重复的问题。最新的答案来自2015年,它指向维基百科列出的所有JVM实现。在维基百科中,它说OpenJDK as(JDK)包含热点虚拟机。但是我在寻找一些官方文件或文章,或者除了维基百科之外的任何东西。OpenJDK是java的开源基础。Oracle Java是openjdk的翻版,具有额外的功能。有些组件未获得许可。想必openjdk要么使用开源替代品,要么只用于不属于公共API的功能。相关:如果你说的是商业功能和打印标志,添加解锁商业功能是否有意义?如果你不介意,请看一看。更新:Oracle拥有开源的商业功能,如Java飞行记录器和任务控制,将它们移交给项目。Oracle宣布他们自己的Oracle品牌Java实现将与OpenJDK具有同等的功能。回答得很好!只是想补充一下,Eclipse基金会从Oracle获得了TCK。看见
bool EnableResourceManagementTLABCache = true {product}
bool EnableSharedLookupCache = true {product}
bool FlightRecorder = false {commercial}
ccstr FlightRecorderOptions = {product}
bool LogCommercialFeatures = false {product}
ccstr MemoryRestriction = none {commercial}
bool ResourceManagement = false {commercial}
intx ResourceManagementSampleInterval = -1 {commercial}
ccstr StartFlightRecording = {commercial}
bool TraceSharedLookupCache = false {product}
bool UnlockCommercialFeatures := true {commercial}
bool UseAppCDS = false {commercial}