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.
erstellenDer 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“.