El problema
Se ha instalado un JDK/JRE de Oracle en una máquina Linux de acuerdo con las instrucciones de instalación. El comando "java" no ejecuta la JVM que se ha instalado. Las aplicaciones Java pueden fallar al ejecutarse si se encuentra un Java Runtime Environment inesperado.
Ejemplo de un servidor 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)
Descargo de responsabilidad :Los directorios y rutas utilizados en este artículo representan nombres de muestra ficticios que componen un ejemplo. Cualquier similitud con el código real es pura coincidencia y no pretende ser de otra manera.
La solución
Se ha instalado un nuevo JDK/JRE de Oracle según las instrucciones de instalación. Ejemplo de un servidor Red Hat:
# rpm -ivh jdk-7u6-linux-x64.rpm
El comando "java" suele ser un enlace simbólico en /usr/bin que apunta (directa o indirectamente) al ejecutable Java real. Por lo general, /usr/bin es una de las primeras entradas en la variable de entorno PATH y, por lo tanto, /usr/bin/java suele ser el primero que se encuentra si se inicia Java.
Para las siguientes posibles soluciones, supongamos que ha instalado el JDK en /usr/java/jdk1.7.0_06/.
Solución 1:Modificar la RUTA
Modifique la variable de entorno PATH para que se pueda encontrar el nuevo Oracle JRE/JDK antes de que se puedan encontrar otros JRE.
Por ejemplo:
$ 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)
Solución 2:utilice una ruta absoluta
Utilice la ruta absoluta completa al Oracle JRE/JDK recién instalado para ejecutar aplicaciones Java.
Por ejemplo:
$ /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)
Solución 3:Utilice alternativas de actualización
Use el comando llamado update-alternatives para decirle a Linux dónde encontrar el Oracle JRE/JDK que acaba de instalar.
Nota :la reparación manual de enlaces simbólicos como /usr/bin/java o /etc/alternatives/java puede hacer que el comando update-alternatives muestre valores incorrectos o incluso no se inicie. Por lo tanto, se recomienda utilizar el comando update-alternatives para instalar y configurar los enlaces simbólicos deseados en lugar de modificar los enlaces simbólicos manualmente.Use "su" en RedHat, use "sudo" en 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)
Para obtener más información, consulte la página man de update-alternatives.
$ man update-alternatives