“java.version”和“java.vm.version”有什么区别?
当我使用后者时,我会得到类似“11.3-b02”的内容。这是什么意思?
答案 0 :(得分:2)
VM版本是VM软件的版本,而java.version是java语言的版本(即规范)。该比较类似于C ++规范的版本(功能等)与C ++编译器的版本(内部版本号等)。那有意义吗?如果没有,我可以更加明确地澄清它。
的问候, 克里斯
答案 1 :(得分:1)
java.version
是语言实现的版本。 java.vm.version
是底层引擎的版本。该引擎可能在看起来像次要版本之间的性能方面有重大改进而功能没有变化,因此它是单独版本化的。
有关详细信息,以下是 Sun 和 Oracle 如何描述这些选项:
Sun说:
Oracle的JRockit文档更清晰一点:
java.version - 此属性标识J2SE JDK / JRE产品版本;也就是说,您正在运行的JDK或JSE版本。版本号也出现在输出的第一行,并且与Sun JRE和Oracle JRockit JRE相同。此属性生成的信息以以下格式显示:
<jdk_major_version>.<jdk_minor_version>.<jdk_micro_version>[_<jdk_update_version>][-<milestone>]
下面的示例版本输出中的值以粗体显示:java version "1.5.0_03" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07) BEA JRockit(R) (build dra-45238-20050523-2021-win-ia32, R25.2.0-28)有关java.version的更多信息,请参阅:{ {3}}
http://java.sun.com/j2se/versioning_naming.html - 此属性标识JVM实现版本。版本ID出现在java -version输出的第三行。此ID是区分JRockit JVM版本的主要方法。以下是JRockit JVM的几个不同版本的示例
答案 2 :(得分:0)
我发现a forum entry on sun's site提到Java.vm.version属性在Java6中被搞砸了。 Java's docs没有提到java.vm.version属性。 IBM mentions it,也许它特定于您正在使用的JVM,但不是规范的一部分。