title: Determining location of JVM executable during runtime
body: <p>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.</p>
  
  <p>I am aware that there is the <code>java.home</code> 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:</p>
  
  <p><code>System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"</code></p>
  
  <p>This code isn't platform independent, because the Windows executable's name is <code>java.exe</code>, not <code>java</code>. Is there a way to get the path of the JVM executable that takes the platform's idiosyncrasies into account?</p>