web-dev-qa-db-de.com

Warum kann ich den Java_HOME-Pfad auf meinem MAC OS X 10.11 nicht sehen?

Ich versuche, eine Java-Anwendung auf meinem MAC OS X 10.11 (El Capitan) auszuführen.

Ich habe diesen Link verwendet, um Java_HOME auf meinem MAC OS X 10.11 einzustellen.

Ich kann folgende Befehle ausführen:
Java-Version 
welche Java

Wenn ich jedoch auf die Terminal-App auf MAC gehe und echo $ Java_HOME eingebe, sehe ich nichts. Warum das? Bedeutet das, dass mein Java_HOME nicht richtig eingestellt ist?

15
Andy

Wo es zu definieren ist

Ok, zuerst müssen wir where klarstellen, um Java_HOME zu setzen.

Vereinfacht können Sie es in zwei Dateien definieren: entweder ~/.bashrc oder ~/bash_profile. Mit default wird das erstere für so genannte "interaktive Nicht-Login-Shells" ausgeführt, während das Letztere für "Login-Shells" verwendet wird. Eine "Login-Shell" ist genau das, was Sie erwarten würden: eine Shell das nach dem Login über die Kommandozeile gestartet wird. Eine "interaktive Nicht-Login-Shell" ist eine Shell, die zum Beispiel von einer GUI aus gestartet wird. Demnach sollten wir unsere Exportaussage in ~/.bashrc setzen.

Randbemerkung: Während die "Terminal" -Anwendung von OS X beide genannten 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 müssen Java_HOME in die Datei ~/.bashrc exportieren, damit bei jedem Öffnen einer Shell die Variable festgelegt wird.

Unter OS X werden die Java Development Kits und Laufzeitumgebungen schon seit geraumer Zeit unter /Library/Java/JavaVirtualMachines/ gespeichert. Schaut dort nach. So sieht es an meinem Rechner aus:

/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 aus

jdk1.7.0_45.jdk/
└── Contents
    ├── Home
    ├── Info.plist
    └── MacOS

Und da haben wir es bekommen. Wenn Sie also auf das JDK 1.7.0_45 verweisen wollten, würden Sie die folgende Anweisung in Ihren .bashrc einfügen.

export Java_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

Um sicherzustellen, dass die korrekten Binärdateien für diese Java-Version aufgerufen werden, sollten Sie nach der obigen Anweisung auch Folgendes hinzufügen:

export PATH=$Java_HOME/bin:$PATH
34
export Java_HOME=$(/usr/libexec/Java_home -v 1.8)

das ist für Java 8 .... Originale Verbindung, wo ich sie gefunden habe, ist hier Installation von Java unter Mac OS X 10.10 Yosemite und 10.11 El Capitan

Aber die akzeptierte Antwort funktioniert auch. Sie müssen nur nach Änderungen auf Pfadänderungen achten.

7
SDen

Sie finden viele Antworten zum Einstellen von Java_HOME in OSX. Es ist jedoch schwierig, eine Antwort auf die Frage zu finden, ob das Einstellen von Java_HOME überhaupt erforderlich ist.

Warum das? Bedeutet das, dass mein Java_HOME nicht richtig gesetzt ist?

Unter OSX ist das Festlegen der Java_HOME-Umgebungsvariablen optional. Die JRE- und JDK-Installationsprogramme bieten keine Einstellung für Java_HOME. es ist also in Ordnung, dass Java_HOME nicht gesetzt wird.

1
chw1k

Wenn Sie jdk 1.6 aus irgendeinem Grund verwenden möchten, hat Apple die Unterstützung eingestellt. Es wird nach der Aktualisierung von Mac OS entfernt. Sie können jdk 1.6 weiterhin von dieser Seite erhalten: https://support.Apple.com/kb/DL1572?locale=zh_CN

Vergessen Sie nicht, nach der erneuten Installation von jdk 1.6 das korrekte Verzeichnis für die Systemvariable $ Java_HOME in ~/.bash_profile usw. zu exportieren /Zuhause".

0
Willie Z