GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Suchen Sie JAVA_HOME und legen Sie es auf RHEL fest

readlink Der Befehl zeigt Ihnen den vollständigen Pfad des symbolischen Links:

readlink -f `which java`

Das Beste, was Sie tun können, ist Java von Red Hat ganz zu vermeiden.

Holen Sie sich Ihr Java von Oracle und fügen Sie es in /opt ein. Erstellen Sie dann einfach den Symlink /opt/java -> /opt/jdk-someversion und erstellen Sie /etc/profile.d/java.sh mit

#!/bin/sh
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH

Um dann das systemweite Java zu ändern, ändern Sie einfach den symbolischen Link in opt. Um mehrere Java-Versionen zu verwenden, verwenden Sie Skripte wie das obige mit dem entsprechenden JAVA_HOME.

Darüber hinaus reißt das /sbin/service-Skript, das zum Ausführen von /etc/init.d-Skripten verwendet wird, Umgebungsvariablen ab – führt explizit env -i aus. D.h. Ihr Kater bekommt kein JAVA_HOME, Sie müssen setenv.sh in $CATALINA_BASE/bin.

erstellen

Der Nachteil dieses Ansatzes ist, dass Sie keine Java-Updates von Red Hat erhalten.


Versuchen Sie zuerst echo $JAVA_HOME von der Kommandozeile. Seit java ist schon auf deinem Weg, JAVA_HOME eingestellt werden.

Wie finde ich am besten das Installationsverzeichnis meiner Java-Installation heraus?

Ausführen des Befehls which java zeigt Ihnen, wohin java installiert ist.

und setzen Sie dann JAVA_HOME

Sie können ~/.bashrc bearbeiten , ~/.bash_profile , oder /etc/profile um JAVA_HOME einzustellen . Setzen Sie es in ~/etc/profile wird es systemweit festlegen, und das ist wahrscheinlich nicht das, was Sie wollen. Nehmen wir als Beispiel die Ausgabe von which java ist /opt/jdk_1.7.0_25 , dann würden Sie einfach export JAVA_HOME=/opt/jdk_1.7.0_25 hinzufügen bis ~/.bashrc oder ~/.bash_profile und führen Sie dann source ~/.bashrc aus (oder source ~/.bash_profile wenn Sie es dort einstellen).

Beachten Sie, dass in diesem Fall java befindet sich auf der PATH aber in einigen Fällen müssten Sie export PATH=$PATH:$JAVA_HOME/bin hinzufügen um den JAVA_HOME hinzuzufügen Variable zu PATH .


RHEL verwendet alternative Subsysteme, um Java-Installationen zu verwalten. Sie können mehrere Java-Versionen installiert haben, aber es ist immer nur eine aktiv.

Das bedeutet, dass which java ausgeführt wird liefert keine nützlichen Informationen. Die Ausgabe wäre die gleiche, egal welche Java-Installation viaalternatives ausgewählt wird. Ausführen von readlink -f $(which java) (wie bereits in einem anderen Kommentar vorgeschlagen) oder die Verwendung von Fragealternativen alternatives --display java wäre besser.

Siehe Beispiel einer RHEL 6-Maschine mit installiertem OpenJDK (das mit RHEL geliefert wird):

[[email protected] ~]# which java
/usr/bin/java
[[email protected] ~]# readlink -f $(which java)
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64/jre/bin/java
[[email protected] ~]# alternatives --display java | head -2
java - status is manual.
 link currently points to /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

Beachten Sie die Umgebungsvariable JAVA_HOME standardmäßig nirgendwo definiert ist, müssten Sie es selbst in .bashrc definieren des Benutzers, der es benötigt.

Korrigieren Sie im vorherigen Beispiel den Wert JAVA_HOME wäre /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64 .

Weitere Informationen finden Sie in der Dokumentation zum Installieren von OpenJDK, suchen Sie nach dem Abschnitt „Optional:Set the JAVA_HOME environment variable“.


Linux
  1. Muster finden und verschieben?

  2. Wie setze ich einen optionalen Parameter?

  3. Brechen Sie von Find ab, wenn ein -exec fehlschlägt?

  4. CentOS / RHEL :So finden Sie Datum und Uhrzeit der RPM-Installation

  5. Suchen und kopieren Sie Dateien

So legen Sie den JAVA_HOME-Pfad in Ubuntu 20.04 und Ubuntu 22.04 fest

So stellen Sie Datum, Uhrzeit und Zeitzone in RHEL 8 ein

So legen Sie die JAVA_HOME-Variable in Ubuntu Linux richtig fest

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach

So stellen Sie Datum und Uhrzeit unter Linux ein

So richten Sie SSH unter CentOS und RHEL ein