readlink
comando ti mostrerà il percorso completo del collegamento simbolico:
readlink -f `which java`
Il meglio che puoi fare è evitare del tutto java di Red Hat.
Ottieni il tuo java da Oracle e inseriscilo in /opt. Quindi crea semplicemente il collegamento simbolico /opt/java -> /opt/jdk-someversion e crea /etc/profile.d/java.sh contenente
#!/bin/sh
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
Quindi, per modificare java a livello di sistema, basta modificare il collegamento simbolico in opt. Per utilizzare più versioni java, utilizzare script come sopra con JAVA_HOME appropriato.
Inoltre, lo script /sbin/service utilizzato per eseguire gli script /etc/init.d strapperà le variabili di ambiente - esegue env -i in modo esplicito. Quindi, ad esempio, il tuo Tomcat non riceverà JAVA_HOME, dovrai creare setenv.sh in $CATALINA_BASE/bin.
Lo svantaggio di questo approccio è che non ricevi aggiornamenti java da Red Hat.
Innanzitutto, prova echo $JAVA_HOME
dalla riga di comando. Dal java
è già sulla tua strada, JAVA_HOME
può essere impostato.
Qual è il modo migliore per capire la directory di installazione della mia installazione di java
Eseguendo il comando which java
ti indirizzerà dove java
è installato.
e poi imposta JAVA_HOME
Puoi modificare ~/.bashrc
, ~/.bash_profile
o /etc/profile
per impostare JAVA_HOME
. Impostandolo in ~/etc/profile
lo imposterà a livello di sistema, e questo probabilmente non è quello che vuoi. Dì per esempio l'output di which java
è /opt/jdk_1.7.0_25
, quindi devi solo aggiungere export JAVA_HOME=/opt/jdk_1.7.0_25
a ~/.bashrc
o ~/.bash_profile
e poi esegui source ~/.bashrc
(o source ~/.bash_profile
se lo imposti lì).
Nota che in questo caso, java
è sul PATH
ma in alcuni casi dovrai aggiungere export PATH=$PATH:$JAVA_HOME/bin
per aggiungere il JAVA_HOME
variabile a PATH
.
RHEL utilizza un sottosistema alternativo per gestire le installazioni Java. Puoi avere più versioni di java installate, ma solo una alla volta è attiva.
Ciò significa che l'esecuzione di which java
non fornisce informazioni utili. L'output sarà lo stesso indipendentemente dall'installazione java selezionata tramite le alternative. Esecuzione di readlink -f $(which java)
(come già suggerito in altro commento) o utilizzando le alternative di richiesta alternatives --display java
sarebbe meglio.
Guarda l'esempio dalla macchina RHEL 6 con OpenJDK installato (fornito con RHEL):
[[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
Nota che la variabile d'ambiente JAVA_HOME
non è definito da nessuna parte per impostazione predefinita, dovresti definirlo tu stesso in .bashrc
dell'utente che lo richiede.
Nell'esempio precedente, correggere il valore di JAVA_HOME
sarebbe/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
.
Consulta i dettagli nella documentazione relativa all'installazione di OpenJDK, cerca la sezione "Facoltativo:imposta la variabile di ambiente JAVA_HOME".