Bestimmen des Speicherorts der JVM-Programmdatei zur Laufzeit
Wie erhält man den Speicherort der ausführbaren Datei der aktuell ausgeführten JVM zur Laufzeit? Ich möchte eine andere JVM als Unterprozess mithilfe der ProcessBuilder-Klasse instanziieren.
Ich bin mir bewusst, dass es dasjava.home
Systemeigenschaft, gibt jedoch nicht den Speicherort der ausführbaren JVM-Datei an. Ich verstehe, dass ich so etwas tun könnte, um den Pfad zu finden:
System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"
Dieser Code ist nicht plattformunabhängig, da der Name der ausführbaren Windows-Datei @ lautejava.exe
, nichtjava
. Gibt es eine Möglichkeit, den Pfad der ausführbaren JVM-Datei zu ermitteln, die die Besonderheiten der Plattform berücksichtigt?