Viele Java-Anwendungen, die Shell-Skripte zum Konfigurieren ihrer Umgebung verwenden, verwenden die JAVA_HOME
Umgebungsvariable, um die richtige Version von Java zu starten, JRE-JARs zu suchen usw.
In macOS X 10.6 scheinen die folgenden Pfade für diese Variable gültig zu sein
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Einige davon sind Symlinks zur aktuellen VM (wie im Bereich Java-Einstellungen definiert).
Aber welches sollte verwendet werden - oder ist es in Ordnung, eines davon zu verwenden?
java
macos
configuration
Robert Christie
quelle
quelle
Antworten:
Ich habe gerade
JAVA_HOME
die Ausgabe dieses Befehls eingestellt, der Ihnen den in Ihren Java- Einstellungen angegebenen Java-Pfad geben soll. Hier ist ein Ausschnitt aus meiner.bashrc
Datei, der diese Variable setzt:Ich habe keine Probleme mit dieser Technik gehabt.
Gelegentlich muss ich den Wert von
JAVA_HOME
auf eine frühere Version von Java ändern . Für ein Programm, das ich verwalte, ist beispielsweise 32-Bit-Java 5 unter OS X erforderlich. Wenn ich dieses Programm verwende, stelle ichJAVA_HOME
Folgendes ein:Für diejenigen unter Ihnen, die nicht
java_home
auf Ihrem Weg sind, fügen Sie es so hinzu.Referenzen :
Oracle erklärt den Befehl java_home
Ein Artikel zum Konfigurieren des JDK in Spring Tool Suite (Eclipse 2019) unter MacOS
quelle
Es ist auch interessant, Ihren PFAD so einzustellen, dass er das JDK widerspiegelt. Nach dem Hinzufügen von JAVA_HOME (dies kann mit dem von 'mipadi' zitierten Beispiel erfolgen):
export JAVA_HOME=$(/usr/libexec/java_home)
Fügen Sie auch in ~ / .profile hinzu:
export PATH=${JAVA_HOME}/bin:$PATH
PS: Für OSX verwende ich im Allgemeinen .profile im HOME-Verzeichnis anstelle von .bashrc
quelle
.bash_profile
Warum verwenden Sie diese als die generische.profile
?.profile
es generisch ist, funktioniert es mitsh
oderbash
, während.bash_profile
es exklusiv für istbash
. Auch dies isoliert Einstellungen von Apps, die.bash_profile
wie verwendenMacPorts
. Aber Sie können sicher eines der beiden verwenden. Sehen Sie mehr darüber hier.bash_profile
Überschreibungen verwendet werden.profile
..bash_profile
es.profile
für allesh
Variationen spezifisch und generisch ist .java
Ihrer/usr/bin
sollte es nicht notwendig sein, explizit hinzufügen ,$JAVA_HOME
um Ihren Weg.Ich habe MAC OS X (Sierra) 10.12.2 .
Ich habe JAVA_HOME so eingestellt, dass es mit React Native (für Android-Apps) funktioniert , indem ich die folgenden Schritte befolge .
Öffnen Sie das Terminal (Befehl + R, geben Sie Terminal ein und drücken Sie die EINGABETASTE).
Fügen Sie die folgenden Zeilen zu ~ / .bash_profile hinzu .
export JAVA_HOME=$(/usr/libexec/java_home)
Führen Sie nun den folgenden Befehl aus.
source ~/.bash_profile
Sie können den genauen Wert von JAVA_HOME überprüfen, indem Sie den folgenden Befehl eingeben.
echo $JAVA_HOME
Der zurückgegebene Wert (Ausgabe) ist ungefähr wie folgt.
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
Das ist es.
quelle
$JAVA_HOME
bezieht sich$(/usr/libexec/java_home)
und$(/usr/libexec/java_home)
wird intern/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
vom System bezeichnet.Ich bin unter Mac OS 10.6.8
Die einfachste Lösung, die für mich funktioniert, ist einfach einzutragen
Um zu testen, ob es funktioniert, geben Sie ein
es zeigt
Sie können auch testen
quelle
Heutzutage scheint Java in installiert zu sein
/Library/Java/JavaVirtualMachines
quelle
Ich neige dazu zu benutzen
/Library/Java/Home
. Die Funktionsweise des Einstellungsbereichs sollte mit Ihrer bevorzugten Version auf dem neuesten Stand sein.quelle
Das oben genannte funktioniert in YOSEMITE für GRAFISCHE ANWENDUNGEN nicht mehr! Wie Eclipse oder alles, was mit Spotlight begann. (.bash_profile, launchd.conf funktioniert nur für Terminalsitzungen.) Öffnen Sie vor dem Starten von Eclipse einfach ein Terminalfenster und geben Sie den folgenden Befehl aus:
(Mit Ihrem Installationspfad! Funktioniert möglicherweise auch mit $ (/ usr / libexec / java_home) anstelle des vollständigen Pfads.)
Den gesamten ausgezeichneten Artikel über die permanente Lösung finden Sie hier: Das Festlegen von Umgebungsvariablen über launchd.conf funktioniert nicht mehr unter OS X Yosemite / El Capitan / macOS Sierra?
quelle
Ich habe festgestellt, dass dieser Stapel hilft. Ich hatte das gleiche Problem und konnte Folgendes beheben:
Mein Java-Pfad war hier:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
und wurde benötigt, um in meine
.bash_profile
:export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
Hoffe Hilfe
quelle
Überspringen des Terminal-Setups, da Sie Anwendungen erwähnt haben, Einrichtung einer permanenten Systemumgebungsvariablen (funktioniert für macOS Sierra; sollte auch für El Capitan funktionieren):
(Dadurch wird JAVA_HOME auf das neueste 1.8 JDK gesetzt. Möglicherweise haben Sie mehrere Updates durchgeführt, z. B. javac 1.8.0_101, javac 1.8.0_131.)
Ändern Sie 1.8 natürlich in 1.7 oder 1.6 (wirklich?), um Ihren Anforderungen und Ihrem System zu entsprechen
quelle
Wie andere Antworten vermerken, ist die richtige Methode zum Auffinden des Java-Ausgangsverzeichnisses die Verwendung
/usr/libexec/java_home
.Die offizielle Dokumentation hierzu finden Sie in den technischen Fragen und Antworten von Apple. QA1170: Wichtige Java-Verzeichnisse unter OS X : https://developer.apple.com/library/mac/qa/qa1170/_index.html
quelle
Für mich scheint Maven von der
.mavenrc
Datei abzuarbeiten :Ich bin mir sicher, dass ich es auch bei SO aufgegriffen habe, kann mich aber nicht erinnern, wo.
quelle
Erstelle Datei
~/.mavenrc
Fügen Sie dies dann in die Datei ein
export JAVA_HOME=$(/usr/libexec/java_home)
Prüfung
mvn -v
quelle
Es wird empfohlen, die Standard-Terminal-Shell zu überprüfen, bevor die Umgebungsvariable JAVA_HOME über die folgenden Befehle festgelegt wird:
Wenn Ihr Standardterminal / bin / bash (Bash) ist, sollten Sie die @ hygull- Methode verwenden
Wenn Ihr Standardterminal / bin / zsh (Z-Shell) ist, sollten Sie diese Umgebungsvariablen in der Datei ~ / .zshenv mit folgendem Inhalt festlegen :
In ähnlicher Weise sollten Sie für jeden anderen nicht oben genannten Terminaltyp die Umgebungsvariable in der jeweiligen Terminal-Env-Datei festlegen.
Diese Methode wurde unter macOS Mojave Version 10.14.6 getestet .
quelle
Verwenden Sie für Benutzer von Fish Shell Folgendes:
alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"
quelle