在运行时如何获取当前正在运行的JVM可执行文件的位置? 我想使用ProcessBuilder类将另一个JVM实例化为子进程。
我知道有java.home
系统属性,但这并不指定JVM可执行文件的位置。 我明白我可以像这样做来获取路径:
System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"
由于Windows可执行文件的名称为java.exe
而不是java
,因此这段代码不是平台独立的。 有没有一种方法可以获取JVM可执行文件的路径,并考虑到每个平台的特殊性?
java.home
系统属性,我指的不是环境变量,而是存在于System.getProperties()
中的属性。我已经验证了JRE具有java.home
系统属性。在Windows中,.exe
扩展名是可选的,这一点很有用。 - Samad Lotia