Frage Wie setze ich JAVA_HOME für Java?


Ich habe eine Java-Version installiert. Wie können wir das einstellen? $JAVA_HOME Umgebungsvariable korrekt?


249
2017-08-13 22:31


Ursprung




Antworten:


Sie können Ihre einstellen JAVA_HOME im /etc/profile wie Petronilla Escarabajo schlägt vor. Aber der bevorzugte Ort für JAVA_HOME oder irgendeine Systemvariable ist /etc/environment.

Öffnen /etc/environment in jedem Texteditor wie nano oder gedit und füge folgende Zeile hinzu:

JAVA_HOME="/usr/lib/jvm/open-jdk"

(Java-Pfad könnte anders sein)

Benutzen source um die Variablen zu laden, indem Sie diesen Befehl ausführen:

source /etc/environment

Überprüfen Sie dann die Variable, indem Sie diesen Befehl ausführen:

echo $JAVA_HOME

Aktualisieren

Normalerweise verwenden die meisten Linux-Systeme standardmäßig / etc / environment. Wenn Ihr System dies nicht tut, fügen Sie die folgende Zeile hinzu ~/.bashrc (Danke @pje)

source /etc/environment

345
2017-08-14 02:17



Ich bekomme: JDK Erforderlich: 'tools.jar' scheint nicht im IDEA-Klassenpfad zu sein. Stellen Sie sicher, dass JAVA_HOME auf JDK und nicht auf JRE verweist. - anon58192932
@advocate - Sie sollten wahrscheinlich Ihre eigene Frage dafür veröffentlichen. Aber der Hinweis ist in der Nachricht; Sie müssen auf ein JDK und nicht auf eine JRE zeigen. - David Edwards
Als ich versuchte, Android Studio (mit IntelliJ IDEA als Basis) zu starten, hatte ich eine Fehlermeldung, die der von @ advocate sehr ähnlich war: "'tools.jar' scheint nicht im Klassenpfad von Android Studio zu sein." Nachdem ich viel mit JAVA_HOME ohne Erfolg herumgespielt hatte, entschied ich mich studio.sh anzuschauen, das Shellskript, das Android Studio startet. Als wilde Vermutung setze ich JDK_HOME auf denselben Wert, der für JAVA_HOME erwartet wird, und voila! Es hat ohne große Probleme installiert. - Hilton Fernandes
Für diejenigen, die Softwareentwicklung betreiben, sollten Sie Ihren JAVA_HOME nicht in / etc / environment ablegen, es sei denn, Sie möchten jedes Mal neu starten, wenn Sie JDK-Versionen wechseln. - HDave
Wie andere darauf hingewiesen haben, bleibt dies nicht zwischen den Terminalsitzungen haften. Was ich getan habe, um dies zu beheben, ist nur die Zeile hinzugefügt source /etc/environment an den Anfang meiner Bash-Konfigurationsdatei ~/.bashrc so dass es beim Start alle meine Umgebungseinstellungen lädt. Bis jetzt für mich gearbeitet. - pje


Einstellen JAVA_HOME Umgebungsvariable, tun Sie Folgendes:

  1. Starten Sie das Terminal durch Drücken von Strg+Alt+T auf deiner Tastatur.
  2. Geben Sie den folgenden Befehl ein:
    $ gksudo gedit /etc/environment
  3. Je nachdem, wo Sie Java installiert haben, müssen Sie den vollständigen Pfad angeben. In diesem Beispiel habe ich Oracle JDK 7 in installiert /usr/lib/jvm/java-7-oracle Verzeichnis.
    Scrollen Sie zum Ende der Datei und geben Sie Folgendes ein:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. Speichern Sie Ihre Datei und beenden Sie sie gedit.
  5. Zuletzt laden Sie den Systempfad mit folgendem Befehl neu:
    $ . /etc/environment

Die obige Methode erspart Ihnen den Aufwand, die Befehle jedes Mal auszuführen, wenn Sie sich bei Ihrem Computer anmelden.


67
2017-08-13 23:01



Wie geht es? / etc / environment arbeiten? - Sudip Bhandari
Ist der Zusatz der export Befehl notwendig in der /etc/environment? - pkaramol
@pkaramol Ich musste JAVA_HOME auf 16.04LTS exportieren, damit es beim Start geladen wird. - adeen-s
@ adeen-s Du hast hinzugefügt export zu einer Linie herein /etc/environment und es hat geholfen? Diese Datei enthält Variablendefinitionen, die als analysiert werden =-begrenzte Name-Wert-Paare; Der Inhalt wird nicht als Befehl ausgeführt. (Sehen man pam_env.) Also, außer du bist es separat Behandeln der Datei als wäre es ein Skript (z. B. durch Übergeben von /etc/environment zu schlagen ./source gebaut), würde ich nicht erwarten, dass das funktioniert. - Eliah Kagan


Wenn Sie den Pfad nicht kennen und Sie nur openJDK installiert haben, können Sie eingeben update-alternatives --config java und du solltest den Pfad finden. Um die Variable zu setzen, können Sie schreiben JAVA_HOME=<PATH> gefolgt von export JAVA_HOME. Beachten Sie, dass bei der Deklaration der Variablen kein Leerzeichen vorhanden ist. Um zu prüfen, ob die Variable gespeichert ist, tippen Sie einfach echo $JAVA_HOME verifizieren.


30
2017-08-18 21:29



Das scheint so zu sein, als wäre es statisch. Wenn ich openjdk-7 entferne und openjdk-9 installiere, wird JAVA_HOME dann nicht auf den falschen Ort zeigen? Wie kann es dynamisch gemacht werden? - DavidJ
Indem Sie es manuell ändern. Noch einmal, DU bist so, wie es dynamisch wird .... - HDave
Was @HDave bedeutet, dass Sie in bestimmten Fällen möchten, dass JAVA_HOME auf eine bestimmte Java-Version verweist, sodass die Aktualisierung von JAVA_HOME dynamic möglicherweise nicht Ihren Vorstellungen entspricht. - Maciej
Ich mag diese Antwort. Ich habe mit echo getestet und sehe meinen Weg. Ich bin jedoch verwirrt, warum ich immer noch komme JAVA_HOME Umgebungsvariable wird nicht festgelegt, wenn ich mvn -version ausführen - Winnemucca
Ich schrieb diese Antwort zurück, als ich ignoranter war. Das Festlegen der Variablen wie beschrieben wirkt sich nur auf Ihre aktuelle Terminalsitzung aus und wird nicht beibehalten. Der richtige Weg ist zu laufen update-alternatives --install <link> <name> <target> <priority>  beispielsweise: update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1 - Erro