Ich habe ein Programm geschrieben, das einen Verwendungshinweis ausgibt. Es gibt zur Zeit den Pfad zur Hauptdatei jar
zurück, wie ursprünglich in der Befehlszeile eingegeben wurde.Wie wird der Pfad zum aktuell ausgeführten Java-Befehlszeilenpfad abgerufen? (vor symbolischen Links)
Usage: java -jar path/to/MyJar.jar <params> ...
Der Vollständigkeit halber möchte ich sicherstellen möchten, dass die java
Bit als auch Echo zurück, wie es verschiedene Möglichkeiten sind java
zuzugreifen, (mehr als nur das Wort java
und kürzer als der kanonische Weg zu /us/opt/java-1.8.0-u123/bin/java
)
Usage: /us/opt/java7/bin/java -jar MyJar.jar <params> ...
Usage: ./bin/java -jar MyJar.jar <params> ...
Usage: java -jar MyJar.jar <params> ...
# whatever the user typed in
Wie kann ich bestimmen, welche Befehlszeile verwendet, um die JVM zu evozieren?
Ich möchte den ursprünglichen Befehlszeilenwert vor der Auswertung symbolischer Links.
Ich verwende nicht System.getProperty("java.home")
, weil es keinen Respekt vor dem ursprünglichen Befehlszeilenwert hat, nur die endgültige 'kanonische' Position der JVM. (Ein Hinweis zur Verwendung wie Usage: /us/opt/java-1.8.0-u123/jre/bin/java -jar ...
wäre ziemlich ausführlicher Having,
insbesondere bei Verwendung von einfachen java
auf der Kommandozeile.)
ist die Bestimmung die Befehlszeilen Lage von java
möglich unter Verwendung von reinem Java-Code?
Mögliches Duplikat von [Ermitteln des Speicherorts der JVM-Programmdatei zur Laufzeit] (http: // stackoverf low.com/questions/3392416/determining-location-of-jvm-executable-during-runtime) – ipsi
Ich frage mich, warum der Downvote. Liegt es daran, dass die Frage unklar ist oder weil sie doppelt ist? Ich habe gesucht, bevor ich gefragt habe, aber ich habe immer Ergebnisse erhalten, die diese spezielle Frage nicht gelöst haben. –
Es ist nicht sofort klar, dass Sie sich der anderen Optionen bewusst waren oder was Sie zu tun versuchen, was Sie mit der Antwort mit der höchsten Wahl in der verknüpften Frage nicht tun können. – ipsi