Wie setze ich die Umgebungsvariable JAVA_HOME unter Mac OS X 10.9?


135

Ich habe gerade ein brandneues MacBook Pro gekauft.

Dies ist mein erster MAC überhaupt und ich versuche immer noch, mich zurechtzufinden.

Wie auch immer, ich bin auch neu in Java und habe auf meinem Windows-PC geübt, bevor er endgültig gestorben ist.

Jetzt, da ich auf diesem MAC bin, habe ich mein JDK installiert und muss jetzt die JAVA_HOMEUmgebungsvariable festlegen .

Ich habe keine Ahnung, was ich tun soll.

Ich habe versucht, einigen dieser Anleitungen zu folgen und bin nicht weit gekommen.

  1. Mkyong.com: Festlegen der Variablen JAVA_HOME unter Mac OSX

  2. YouTube: So legen Sie Umgebungsvariablen auf Mac, Linux, Solaris und Rhel fest

  3. YouTube: So legen Sie Umgebungsvariablen in Mac fest

Ich konnte das Terminal finden und ich glaube, ich habe mehrere Dateien erstellt. Ich erhalte folgende Nachrichten:


(1) Ein anderes Programm bearbeitet möglicherweise dieselbe Datei. Wenn dies der Fall ist, achten Sie darauf, dass Sie beim Vornehmen von Änderungen nicht zwei verschiedene Instanzen derselben Datei erhalten. Beenden Sie oder fahren Sie mit Vorsicht fort.


(2) Eine Bearbeitungssitzung für diese Datei ist abgestürzt. Verwenden Sie in diesem Fall ": recovery" oder "vim -r /Users/Erwin/.bash_profile", um die Änderungen wiederherzustellen (siehe ": help recovery"). Wenn Sie dies bereits getan haben, löschen Sie die Auslagerungsdatei "/Users/Erwin/.bash_profile.sw p", um diese Meldung zu vermeiden.

Kann jemand Schritt für Schritt sagen, wie Java in der Mac OSX-Umgebung eingestellt wird?




Erklären Sie
Shomu

Antworten:


327

Sie müssen buchstäblich nur Folgendes tun:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

und starten Sie Ihre Shell neu.

Wenn Sie mehrere JDK-Versionen installiert haben und möchten, dass es sich um eine bestimmte Version handelt, können Sie das -vFlag verwenden, um Folgendes zu java_homemögen:

echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile

1
Wenn Sie "Shell" sagen, meinen Sie damit, dass ich das Terminalfenster schließe und es erneut öffne? Fügt dies auch permanent die Umgebungsvariable für mein JDK hinzu?
islander_zero

1
Ja, das ist, was ich meine. Und ja, das fügt die Variable für alle Login-Shells für Ihren Benutzer hinzu (dh so ziemlich alle Umstände, unter denen Sie es möchten)
Adrian Petrescu

13
Ich denke, anstatt das Terminal neu zu starten source ~/.bash_profile, würde es funktionieren, oder?
Shobhit Puri

2
@ShobhitPuri Ja, ich würde es nur für den Fragesteller einfach halten.
Adrian Petrescu

4
echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profileWenn Sie eine bestimmte Version benötigen. 1.7 in diesem Fall.
Sebastian

26

Ich habe es durch Putten getan

export JAVA_HOME=`/usr/libexec/java_home`

(Backtics) in meiner .bashrc. Siehe meinen Kommentar zu Adrians Antwort.


15

In Mac OSX 10.5 oder höher empfiehlt Apple, die Einstellung $JAVA_HOME variable to /usr/libexec/java_homeeinfach exportieren $JAVA_HOME in file ~/. bash_profileoder festzulegen ~/.profile.

Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus.

$ vim .bash_profile

export JAVA_HOME=$(/usr/libexec/java_home)

Speichern Sie den vim-Editor, beenden Sie ihn und führen Sie den Quellbefehl in .bash_profile aus

$ source .bash_profile

$ echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

11

Set $ JAVA_HOME Umgebungsvariable auf neuesten oder älteren Mac OSX.

JDK herunterladen und installieren

  1. Installieren Sie zuerst JDK
  2. Öffnen Sie die Java-Version für die Terminalprüfung

$ java -version

Legen Sie die Umgebungsvariable JAVA_HOME fest

  1. Öffnen Sie die .zprofile- Datei

$ open -t .zprofile

Oder erstellen . zprofile Datei

$ open -t .zprofile

  1. schreibe in .zprofile

export JAVA_HOME=$(/usr/libexec/java_home)

Speichern Sie .zprofile und schließen Sie die Bash-Datei. Schreiben Sie dann in das Terminal, damit die Arbeit perfekt funktioniert .

$ source .zprofile

Setup-Test im Terminal

$ echo $JAVA_HOME  
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home

1
Außerdem hatte ich eine Frage, was "/ usr / libexec / java_home" eigentlich ist. Antwort: medium.com/zendesk-engineering/…
ekar

1
/ usr / libexec / java_home ist die einfachste wartbare Methode zum Festlegen von JAVA_HOME unter macOS. Mit java_home können Sie: Alle installierten JDKs suchen.
Shomu

7

Es wird empfohlen, die Standard-Terminal-Shell zu überprüfen, bevor die Umgebungsvariable JAVA_HOME über die folgenden Befehle festgelegt wird:

$ echo $SHELL
/bin/bash

Wenn Ihr Standardterminal / bin / bash (Bash) ist, sollten Sie die @ Adrian Petrescu- Methode verwenden.

Wenn Ihr Standardterminal / bin / zsh (Z-Shell) ist, sollten Sie diese Umgebungsvariablen in der Datei ~ / .zshenv mit folgendem Inhalt festlegen :

export JAVA_HOME="$(/usr/libexec/java_home)"

In ähnlicher Weise sollten Sie für jeden anderen oben nicht genannten Terminaltyp die Umgebungsvariable in der jeweiligen Terminal-Env-Datei festlegen.


4

Ich habe es durch Hinzufügen zu ~ / .profile zum Laufen gebracht. Irgendwie hat es nach dem Update auf El Capitan Beta nicht funktioniert, obwohl JAVA_HOME in .bash_profile definiert wurde.

Wenn es Beta-Benutzer von El Capitan gibt, versuchen Sie, .profile hinzuzufügen


2
Was ist der Unterschied zwischen .profile und .bash_profile?
Igor Ganapolsky

3
Die Idee ist, dass .profile für alle Shells (sh, zsh, was auch immer) ausgeführt wird. .bash_profile, nur für Bash-Shells.
JohnL4

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.