5

如何确定安装在 Windows 机器上的 JVM 是 HotSpot 还是 JRockit,还是来自任何其他供应商?

4

4 回答 4

10

在终端中运行此命令

java -XshowSettings:properties -version
于 2019-05-19T19:32:22.733 回答
6

您可以使用命令java -version提示符中的命令,该命令会打印 JVM 信息

于 2013-06-26T20:13:38.903 回答
0

如果您想知道当前运行的JVM 是 HotSpot 还是 JRockit,请查看System.getProperty("java.vm.name"). 对我来说,它Java HotSpot(TM) 64-Bit Server VM在 HotSpot 和Oracle JRockit(R)JRockit 上提供,虽然不同的版本/平台可能会给出略有不同的结果,所以最可靠的方法可能是:

String jvmName = System.getProperty("java.vm.name");
boolean isHotSpot = jvmName.toUpperCase().indexOf("HOTSPOT") != -1;
boolean isJRockit = jvmName.toUpperCase().indexOf("JROCKIT") != -1;

Thorbjørn 的使用建议java.vendor存在同一个厂商可能生产多个 JVM 的问题;事实上,自从甲骨文收购 BEA 和 Sun 以来,HotSpot 和 JRockit 现在都报告了相同的价值:Oracle Corporation

如果您想查找系统上安装的所有 JVM:Nambari 回答的问题是,使用命令java -versionJVM 可以安装在机器上但路径中不存在。对于 Windows,扫描注册表可能是更好的方法。

于 2013-08-22T03:21:27.010 回答
0

对于人类来说,看看定义的各种系统属性。您很可能需要 java.vendor。

http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

对于程序,最好使用反射来测试您需要的 JVM 特定工具,而不是依赖于任意属性值。

于 2013-06-26T20:18:07.337 回答