Determinando o Local do Executável da JVM Durante o Tempo de Execução

Como se obtém o local do executável da JVM atualmente em execução durante o tempo de execução? Gostaria de instanciar outra JVM como um subprocesso usando a classe ProcessBuilder.

Estou ciente de que existe ojava.home Propriedade do sistema, mas isso não especifica o local do executável da JVM. Eu entendo que eu poderia fazer algo assim para pegar o caminho:

System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"

Esse código não é independente de plataforma, porque o nome do executável do Windows éjava.exe, nãojava. Existe uma maneira de obter o caminho do executável da JVM que leva em consideração as idiossincrasias da plataforma?

questionAnswers(4)

yourAnswerToTheQuestion