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?