Wo es
Ok, zunächst zu definieren, müssen wir wo zu setzen JAVA_HOME
deutlich machen.
Vereinfacht können Sie es in zwei Dateien definieren: entweder ~/.bashrc
oder ~/bash_profile
. Nach Standard wird der erste für sogenannte "interaktive Nicht-Login-Shells" ausgeführt, während letzterer für "Login-Shells" verwendet wird. Eine "Login-Shell" ist genau das, was Sie erwarten würden: Eine Shell, die nach der Anmeldung über die Befehlszeile gestartet wird. Eine "interaktive Nicht-Login-Shell" ist eine Shell, die zum Beispiel innerhalb einer GUI gestartet wird. Daher sollten wir unsere Exportaussage in ~/.bashrc
setzen.
Randnotiz: Während die Anwendung "Terminal" von OS X beide erwähnten Dateien liest, ist dies nicht das Standardverhalten und sollte daher nicht als solches behandelt werden. Und deshalb habe ich eine Erklärung geschrieben.
Was definieren Sie
Sie benötigen JAVA_HOME in der ~/.bashrc
-Datei zu exportieren, so dass jedes Mal, wenn eine Schale geöffnet wird, wird die Variable gesetzt ist.
Unter OS X sind die Java Development Kits und Runtime Environments schon lange unter /Library/Java/JavaVirtualMachines/
gespeichert. Schauen Sie sich dort um. Dies ist, wie es bei meiner Maschine aussieht:
/Library/Java/JavaVirtualMachines/
├── jdk1.7.0_45.jdk
├── jdk1.8.0_20.jdk
├── jdk1.8.0_25.jdk
└── jdk1.8.0_51.jdk
Die Unterordner sehen ähnlich wie diese
jdk1.7.0_45.jdk/
└── Contents
├── Home
├── Info.plist
└── MacOS
Und da haben wir es. Also, wenn Sie auf das JDK 1.7.0_45 zeigen wollte, dann würden Sie die folgende Anweisung setzen in Ihr .bashrc
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Um sicherzustellen, dass die richtigen Binärdateien für die Java-Version genannt werden, auch sollten Sie fügen Sie den folgenden Irgendwo nach der obigen Aussage:
Sie haben die erste Frage, die hier gestellt wurde, nicht beantwortet. –
@PeterVerhas Oh, ich habe implizit: Es ist nicht verfügbar, da es nicht in der richtigen dotfile exportiert wurde. Damit eine Umgebungsvariable verfügbar ist, muss sie eingestellt werden;) –
FYI - Dies funktioniert nicht bei High Sierra. Ich musste jdk1.8 angeben und java 9 installiert haben. Die einzige Lösung war, Java 9 zu löschen. – eimmer