How does one obtain the location of the executable of the currently running JVM during runtime? I would like to instantiate another JVM as a subprocess using the ProcessBuilder class.
I am aware that there is the java.home
System property, but this doesn't specify the location of the JVM executable. I understand I could do something like this to get the path:
System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"
This code isn't platform independent, because the Windows executable's name is java.exe
, not java
. Is there a way to get the path of the JVM executable that takes the platform's idiosyncrasies into account?