Determinación de la ubicación del ejecutable JVM durante el tiempo de ejecución
¿Cómo se obtiene la ubicación del ejecutable de la JVM actualmente en ejecución durante el tiempo de ejecución? Me gustaría crear una instancia de otra JVM como un subproceso utilizando la clase ProcessBuilder.
Soy consciente de que existe eljava.home
Propiedad del sistema, pero esto no especifica la ubicación del ejecutable JVM. Entiendo que podría hacer algo como esto para obtener el camino:
System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"
Este código no es independiente de la plataforma, porque el nombre del ejecutable de Windows esjava.exe
nojava
. ¿Hay alguna manera de obtener la ruta del ejecutable JVM que tenga en cuenta las idiosincrasias de la plataforma?