如何在运行时获取当前运行的 JVM 的可执行文件的位置?我想使用 ProcessBuilder 类将另一个 JVM 实例化为子进程。
我知道有java.home
系统属性,但这并不指定 JVM 可执行文件的位置。我知道我可以做这样的事情来获取路径:
System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"
该代码与平台无关,因为 Windows 可执行文件的名称是java.exe
, not java
。有没有办法获取考虑到平台特性的 JVM 可执行文件的路径?
您始终可以使用 os.name 来检查用户是否正在运行 Windows。这适用于 OS X、Linux 和 Windows,网址为
String jvm_location;
if (System.getProperty("os.name").startsWith("Win")) {
jvm_location = System.getProperties().getProperty("java.home") + File.separator + "bin" + File.separator + "java.exe";
} else {
jvm_location = System.getProperties().getProperty("java.home") + File.separator + "bin" + File.separator + "java";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)