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.exenojava. ¿Hay alguna manera de obtener la ruta del ejecutable JVM que tenga en cuenta las idiosincrasias de la plataforma?

Respuestas a la pregunta(4)

Su respuesta a la pregunta