Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenJDK与Java HotspotVM_Java_Jvm_Openjdk_Jvm Hotspot_Hotspot - Fatal编程技术网

OpenJDK与Java HotspotVM

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位服务器虚拟机 如果这是两个不同的虚拟机,那么它们之间的

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}