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