如何确定安装在 Windows 机器上的 JVM 是 HotSpot 还是 JRockit,还是来自任何其他供应商?
4 回答
在终端中运行此命令
java -XshowSettings:properties -version
您可以使用命令java -version
提示符中的命令,该命令会打印 JVM 信息
如果您想知道当前运行的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 -version
JVM 可以安装在机器上但路径中不存在。对于 Windows,扫描注册表可能是更好的方法。
对于人类来说,看看定义的各种系统属性。您很可能需要 java.vendor。
http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
对于程序,最好使用反射来测试您需要的 JVM 特定工具,而不是依赖于任意属性值。