Le problème
Un JDK/JRE d'Oracle a été installé sur une machine Linux conformément aux instructions d'installation. La commande "java" n'exécute pas la JVM qui a été installée. Les applications Java peuvent ne pas s'exécuter si un environnement d'exécution Java inattendu est trouvé.
Exemple d'un serveur 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)
Avis de non-responsabilité :Les répertoires et les chemins utilisés dans cet article représentent des noms d'échantillons fictifs qui constituent un exemple. Toute similitude avec le code réel est purement fortuite et non intentionnelle d'une autre manière.
La solution
Un nouveau JDK/JRE d'Oracle a été installé conformément aux instructions d'installation. Exemple d'un serveur Red Hat :
# rpm -ivh jdk-7u6-linux-x64.rpm
La commande "java" est généralement un lien symbolique dans /usr/bin qui pointe (directement ou indirectement) vers l'exécutable Java réel. Habituellement, /usr/bin est l'une des premières entrées de la variable d'environnement PATH et donc /usr/bin/java est généralement celle qui est trouvée en premier si Java est lancé.
Pour les solutions possibles suivantes, supposons que vous avez installé le JDK dans /usr/java/jdk1.7.0_06/.
Solution 1 :Modifier le CHEMIN
Modifiez la variable d'environnement PATH afin que le nouveau JRE/JDK Oracle puisse être trouvé avant tout autre JRE.
Par exemple :
$ 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)
Solution 2 :Utiliser un chemin absolu
Utilisez le chemin absolu complet vers le JRE/JDK Oracle nouvellement installé afin d'exécuter des applications Java.
Par exemple :
$ /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)
Solution 3 :Utiliser des alternatives de mise à jour
Utilisez la commande appelée update-alternatives afin d'indiquer à Linux où trouver le JRE/JDK Oracle que vous venez d'installer.
Remarque :la correction manuelle des liens symboliques tels que /usr/bin/java ou /etc/alternatives/java peut entraîner l'affichage de valeurs incorrectes par la commande update-alternatives ou même son échec de démarrage. Par conséquent, il est recommandé d'utiliser la commande update-alternatives afin d'installer et de configurer les liens symboliques souhaités au lieu de modifier les liens symboliques manuellement.Utilisez "su" sur RedHat, utilisez "sudo" sur 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)
Pour plus d'informations, veuillez consulter la page de manuel de update-alternatives.
$ man update-alternatives