it-swarm.com.de

Auf was sollte ich Java_HOME unter OSX einstellen?

Viele Java -Anwendungen, die Shell-Skripte zum Konfigurieren ihrer Umgebung verwenden, verwenden das Java_HOME Umgebungsvariable, um die richtige Version von Java zu starten, JRE-JARs zu finden usw.

Unter OSX 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 symbolische Links zu den aktuellen VM (wie im Java Einstellungsbereich) definiert).

Aber welches sollte man verwenden - oder ist es in Ordnung, eines davon zu verwenden?

427
Robert Christie

Hat Snow Leopard noch /usr/libexec/Java_home? In 10.5 habe ich einfach Java_HOME Auf die Ausgabe dieses Befehls gesetzt, was Ihnen den Pfad Java in Ihren Einstellungen Java) angeben sollte. Hier ist ein Ausschnitt aus meiner .bashrc - Datei, der diese Variable setzt:

export Java_HOME=$(/usr/libexec/Java_home)

Ich habe keine Probleme mit dieser Technik erlebt.

Gelegentlich muss ich den Wert von Java_HOME Auf eine frühere Version von Java ändern. Ein Programm, das ich betreue, erfordert beispielsweise 32-Bit Java 5 unter OS X; bei Verwendung dieses Programms habe ich also Java_HOME Folgendermaßen festgelegt:

export Java_HOME=$(/usr/libexec/Java_home -v 1.5)

Für diejenigen von Ihnen, die nicht Java_home In Ihrem Pfad haben, fügen Sie es so hinzu.

Sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java_home /usr/libexec/Java_home
828
mipadi

Es ist auch interessant, Ihren PATH so einzustellen, dass er das JDK widerspiegelt. Nach dem Hinzufügen von Java_HOME (was mit dem von 'mipadi' angegebenen Beispiel geschehen kann):

export Java_HOME=$(/usr/libexec/Java_home)

Füge auch in ~/.profile hinzu:

export PATH=${Java_HOME}/bin:$PATH

P.S.: Unter OSX verwende ich im Allgemeinen .profile im HOME-Verzeichnis anstelle von .bashrc

37
lucasarruda

Ich habe MAC OS X(Sierra) 10.12.2.

Ich setze Java_HOME auf Reagiere Native (für Android apps)), indem ich die folgenden Schritte befolge.

  • Öffnen Sie das Terminal (Befehlstaste + 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 wie folgt. /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

Fertig.

19
hygull

Heutzutage scheint Java installiert zu sein in /Library/Java/JavaVirtualMachines

14

Ich verwende Mac OS 10.6.8

Die einfachste Lösung funktioniert bei mir einfach rein

$ export Java_HOME=$(/usr/libexec/Java_home)

Um zu testen, ob es funktioniert, geben Sie ein

$ echo $Java_HOME

es zeigt

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

sie können auch testen

$ which Java
14
Rae

Ich neige dazu, /Library/Java/Home. Die Funktionsweise des Einstellungsfensters sollte mit Ihrer bevorzugten Version übereinstimmen.

9
Clint

Das 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.) Bevor Sie Eclipse starten, öffnen Sie einfach ein Terminalfenster und geben Sie den folgenden Befehl aus:

launchctl setenv Java_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

(Mit Ihrem Installationspfad! Funktioniert möglicherweise mit $ (/ usr/libexec/Java_home) anstelle des vollständigen Pfads.)

Lesen Sie hier den ganzen ausgezeichneten Artikel über die permanente Lösung: Das Setzen von Umgebungsvariablen über launchd.conf funktioniert nicht mehr unter OS X Yosemite/El Capitan/macOS Sierra?

8

Terminal-Setup überspringen, da Sie Anwendungen erwähnt haben, permanente Einrichtung der Systemumgebungsvariablen (funktioniert für macOS Sierra; sollte auch für El Capitan funktionieren):

launchctl setenv Java_HOME $(/usr/libexec/Java_home -v 1.8)

(Dadurch wird Java_HOME auf das neueste 1.8 JDK gesetzt. Möglicherweise haben Sie mehrere Aktualisierungen durchlaufen, z. B. javac 1.8.0_101, javac 1.8.0_131.)
Natürlich ändern Sie 1.8 auf 1.7 oder 1.6 (wirklich?), Um es Ihren Bedürfnissen und Ihrem System anzupassen

2
ericn

Ich habe dieses gefunden Stapel um zu helfen, hatte ich das gleiche Problem und ich konnte beheben:

Mein Java Pfad war hier:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

und wurde benötigt, um in mein .bash_profile:

export Java_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"

Hoffe Hilfe

2
Shirow

Für mich scheint Maven die .mavenrc Datei:

echo "export Java_HOME=$(/usr/libexec/Java_home -v 1.8)" > ~/.mavenrc

Ich bin sicher, dass ich es aufgegriffen habe SO auch, kann mich nur nicht erinnern, wo.

1
maksimov

Datei erstellen ~/.mavenrc

fügen Sie diese dann in die Datei ein

export Java_HOME=$(/usr/libexec/Java_home)

prüfung

mvn -v

1
KhaledMohamedP

Wie andere Antworten bemerken, ist der richtige Weg, um das Java home-Verzeichnis zu finden, /usr/libexec/Java_home.

Die offizielle Dokumentation dazu finden Sie in Apples Technischem Q & A QA1170: Wichtig Java Verzeichnisse unter OS X : https://developer.Apple.com/library/mac/qa/qa1170/_index.html

1