it-swarm.com.de

So legen Sie Java_HOME in Linux für alle Benutzer fest

Ich bin neu im Linux-System und es scheint zu viele Java-Ordner zu geben. 

Java-Version gibt mir:

  • Java-Version "1.7.0_55"
  • OpenJDK-Laufzeitumgebung (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • OpenJDK 64-Bit Server VM (Build 24.51-b03, gemischter Modus)

Wenn ich versuche, ein Maven-Projekt zu erstellen, erhalte ich eine Fehlermeldung:

Error: Java_HOME is not defined correctly.
We cannot execute /usr/Java/jdk1.7.0_05/bin/Java

Könnten Sie mir bitte sagen, welche Dateien ich für root- und nicht-root-Benutzer ändern muss und wo genau sich Java befindet?

113
Amruta
  1. find /usr/lib/jvm/Java-1.x.x-openjdk
  2. vim /etc/profile

    Stellen Sie Sudo vor, wenn Sie als nicht privilegierter Benutzer angemeldet sind. Sudo vim

  3. Drücken Sie 'i', um in den Einfügemodus zu gelangen
  4. hinzufügen:

    export Java_HOME="path that you found"
    
    export PATH=$Java_HOME/bin:$PATH
    
  5. melden Sie sich ab und erneut an, starten Sie den Computer neu, oder verwenden Sie source /etc/profile, um die Änderungen sofort in Ihrer aktuellen Shell zu übernehmen
234
That Dave Guy

Allen Benutzern würde ich empfehlen, die folgende Zeile in /etc/profile zu platzieren.

export Java_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

Dies wird dynamisch aktualisiert und funktioniert gut mit dem alternatives System. Beachten Sie jedoch, dass das Update nur in einer neuen Login-Shell erfolgt.

75
Eero Aaltonen

Sie könnten/etc/profile oder besser eine Datei wie /etc/profile.d/jdk_home.sh verwenden

export Java_HOME=/usr/Java/jdk1.7.0_05/

Man muss bedenken, dass diese Datei nur mit neuen Login-Shells geladen wird. Also nach bash -l oder einer neuen gnome-session und ändert sich das nicht mit neuen Java-Versionen.

28
flob

Keine der anderen Antworten "klebte" für mich in RHEL 7, selbst das Einstellen von Java_HOME und PATH direkt in /etc/profile oder ~/.bash_profile würde nicht funktionieren. Jedes Mal, wenn ich versuchte zu prüfen, ob Java_HOME eingestellt war, wurde es leer angezeigt:

$ echo $Java_HOME
    (<-- no output)

Ich musste ein script in /etc/profile.d/jdk_home.sh einrichten:

#!/bin/sh
export Java_HOME=/opt/ibm/Java-x86_64-60/
export PATH=$Java_HOME/bin:$PATH

Ich habe die erste Zeile (den #!/bin/sh) anfangs vernachlässigt, und ohne sie geht es nicht.

Jetzt geht es:

$ echo $Java_HOME
/opt/ibm/Java-x86_64-60/
22
Kyle Falconer

Es ist sehr einfach, den Pfad in Linux einzustellen. Gehen Sie wie folgt vor:

Step-1Terminal öffnen und Sudo gedit .bashrc eingeben

Schritt-2Sie werden nach Ihrem Passwort gefragt. Nach der Eingabe des Passworts wird die bash-Datei geöffnet. Gehen Sie dann zum Ende und geben Sie unten ein 

Schritt 3 

      export Java_HOME= /usr/lib/jvm/Java-8-openjdk-AMD64/

      export  PATH="$PATH:$Java_HOME/bin"

step-4Speichern Sie dann die Datei und verlassen Sie die Datei

Oben ist für einen einzelnen Benutzer. Für alle Benutzer müssen Sie die folgenden Schritte befolgen

Schritt-1 gedit /etc/profile

Schritt-2 export Java_HOME=/usr/lib/jvm/Java-8-openjdk-AMD64/

Schritt-3 export PATH=$PATH:$Java_HOME/bin

Hoffe das hilft. Vielen Dank!

9
PyDevSRS

Tun, was Oracle tut (als ehemaliger Sun-Mitarbeiter kann ich mich nicht daran gewöhnen)

in -s latestJavaRelease/usr/Java/default
Wobei latestJavaRelease die Version ist, die Sie verwenden möchten

exportieren Sie anschließend Java_HOME =/usr/Java/default

5
Steve S

Die Antwort ist gegeben, dass die vorherigen Beiträge gültig sind. Aber keine Antwort ist vollständig in Bezug auf: 

  1. Das Ändern von/etc/profile wird nicht einfach aus Gründen (wie in/etc/profile angegeben) empfohlen:
  • Es ist NICHT ratsam, diese Datei zu ändern, es sei denn, Sie wissen, was Sie tun. Es ist viel besser, ein benutzerdefiniertes SH-Skript in .__ zu erstellen. /etc/profile.d/, um benutzerdefinierte Änderungen an Ihrer Umgebung vorzunehmen. verhindert das Zusammenführen zukünftiger Updates. *
  1. Wie oben angegeben, erstellen Sie die Datei /etc/profile.d/custom.sh für benutzerdefinierte Änderungen.

  2. Um immer mit den neueren Java-Versionen auf dem neuesten Stand zu bleiben, geben Sie niemals den absoluten Pfad ein, sondern verwenden Sie:

# wenn jdk als Java-Startseite verwendet wird

export Java_HOME = $ (readlink -f/usr/bin/javac | sed "s:/bin/javac ::")

OR

# wenn jre als Java-Startseite verwendet wird

export Java_HOME = $ (readlink -f/usr/bin/Java | sed "s:/bin/Java ::")

  1. Und denk daran,# zu haben!/bin/bashin der Datei custom.sh
3
alok ailawadi

Kopieren Sie den installierten Bin-Dateipfad

"DEIN WEG"

Öffnen Sie das Terminal und bearbeiten Sie die Umgebungsdatei, indem Sie folgenden Befehl eingeben.

"Sudo nano/etc/environment"

Fügen Sie in dieser Datei die folgende Zeile hinzu (ersetzen Sie YOUR_PATH durch den gerade kopierten Pfad):

Java_HOME = "YOUR_PATH"

Das sollte ausreichen, um die Umgebungsvariable zu setzen. Laden Sie diese Datei jetzt neu:

"source/etc/environment"

testen Sie es jetzt, indem Sie Folgendes ausführen:

echo $ Java_HOME

2
VirangaMahesh

Unter Linux füge ich diese Zeile zu meinem ~/.profile hinzu:

export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
2

Posting als Antwort, da ich nicht das Privileg habe zu kommentieren.

Punkt zu beachten : Folgen Sie der akzeptierten Antwort von "That Dave Guy".

Stellen Sie nach dem Festlegen der Variablen sicher, dass Sie die entsprechenden Berechtigungen für das Java-Verzeichnis festlegen, in dem es installiert ist.

chmod -R 755 /usr/Java
1
Van Peer

Lassen Sie mich beim Festlegen von Java_HOME einige Vorteile der Einstellung von Java_HOME oder einer anderen Umgebungsvariablen teilen:

1) Es ist einfach, JDK zu aktualisieren, ohne dass der Anwendungsstart und die Konfigurationsdatei, die auf Java_HOME zeigen, beeinflusst werden. Sie müssen nur die neue Version herunterladen und sicherstellen, dass Java_HOME auf die neue Java-Version verweist. Dies ist am besten, wenn Sie Umgebungsvariablen oder Links verwenden.

2) Die Java_HOME-Variable ist kurz und knapp und nicht der vollständige Pfad zum JDK-Installationsverzeichnis.

3) Die Java_HOME-Variable ist plattformunabhängig. Wenn Ihr Startskript Java_HOME verwendet, kann es ohne Änderungen unter Windows und UNIX ausgeführt werden. Sie müssen lediglich Java_HOME für das jeweilige Betriebssystem festlegen.

Lesen Sie mehr: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH

1
guest

Schritt 1 - Überprüfen Sie die aktuelle Java-Version mit "echo $ Java_HOME".

Schritt 2 - vim/etc/profile

Schritt 3 - Am Ende der Datei finden Sie Export Java_HOME. Wir müssen hier den neuen Pfad angeben. Stellen Sie sicher, dass er nicht relativ ist.

Schritt 4 - Speichern und beenden: wq

Schritt 5 - "source/etc/profile /" führt die Änderung aus

Schritt 6 - Wiederholen Sie ein Echo $ Java_HOME - die Änderung wurde übernommen.

0

Fügen Sie diesen Befehl einfach zu Ihrer Docking-Datei hinzu

RUN echo "Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")" | tee -a /etc/profile && source /etc/profile && echo $Java_HOME
0

Dies ist ein sehr einfaches Skript, um das Problem zu lösen

export Java_HOME_BIN=`which Java`
export Java_HOME_DIR=`dirname $Java_HOME_BIN`
export Java_HOME=`dirname $Java_HOME_DIR`

Und zum Testen:

echo $Java_HOME
0
Dylan Breugne

Möglicherweise ist es eine gute Idee, das von Ihnen bearbeitete Profil zu speichern, um ein neues Login zu erhalten.

entweder: source /etc/oder./etc /

Wo ist das von Ihnen bearbeitete Profil?.

0