Il problema
Un JDK/JRE di Oracle è stato installato su una macchina Linux secondo le istruzioni di installazione. Il comando "java" non esegue la JVM che è stata installata. Le applicazioni Java potrebbero non funzionare se viene rilevato un Java Runtime Environment imprevisto.
Esempio da un server Red Hat:
$ java -version java version "1.6.0_17" OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64) OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Disclaimer :le directory e i percorsi utilizzati in questo articolo rappresentano nomi di esempio fittizi che costituiscono un esempio. Qualsiasi somiglianza con il codice reale è puramente casuale e non intesa in nessun altro modo.
La soluzione
Un nuovo JDK/JRE di Oracle è stato installato secondo le istruzioni di installazione. Esempio da un server Red Hat:
# rpm -ivh jdk-7u6-linux-x64.rpm
Il comando "java" è solitamente un collegamento simbolico in /usr/bin che punta (direttamente o indirettamente) all'effettivo eseguibile Java. Solitamente /usr/bin è una delle prime voci nella variabile di ambiente PATH e quindi /usr/bin/java è solitamente quella che viene trovata per prima se Java viene avviato.
Per le seguenti possibili soluzioni, supponiamo di aver installato JDK in /usr/java/jdk1.7.0_06/.
Soluzione 1:modifica il PERCORSO
Modificare la variabile di ambiente PATH in modo che il nuovo Oracle JRE/JDK possa essere trovato prima che sia possibile trovare qualsiasi altro JRE.
Ad esempio:
$ export PATH=/usr/java/jdk1.7.0_06/bin:$PATH
$ java -version java version "1.7.0_06" Java(TM) SE Runtime Environment (build 1.7.0_06-b24) Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
Soluzione 2:usa un percorso assoluto
Utilizzare il percorso assoluto completo per Oracle JRE/JDK appena installato per eseguire le applicazioni Java.
Ad esempio:
$ /usr/java/jdk1.7.0_06/bin/java -version java version "1.7.0_06" Java(TM) SE Runtime Environment (build 1.7.0_06-b24) Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
Soluzione 3:usa alternative di aggiornamento
Usa il comando chiamato alternative di aggiornamento per dire a Linux dove trovare Oracle JRE/JDK che hai appena installato.
Nota :la correzione manuale di collegamenti simbolici come /usr/bin/java o /etc/alternatives/java può far sì che il comando update-alternatives visualizzi valori errati o addirittura non si avvii. Pertanto si consiglia di utilizzare il comando update-alternatives per installare e configurare i collegamenti simbolici desiderati invece di modificare i collegamenti simbolici manualmente.Usa "su" su RedHat, usa "sudo" su Ubuntu:
$ su - # update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.7.0_06/bin/java" 1 # update-alternatives --config java There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java *+ 2 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java 3 /usr/java/jdk1.7.0_06/bin/java Enter to keep the current selection[+], or type selection number: 3 # exit
$ java -version java version "1.7.0_06" Java(TM) SE Runtime Environment (build 1.7.0_06-b24) Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
Per ulteriori informazioni, consultare la pagina man di update-alternatives.
$ man update-alternatives