![¿Por qué java -version devuelve una versión diferente a la definida en JAVA_HOME?](https://rvso.com/image/1331450/%C2%BFPor%20qu%C3%A9%20java%20-version%20devuelve%20una%20versi%C3%B3n%20diferente%20a%20la%20definida%20en%20JAVA_HOME%3F.png)
Estoy intentando configurar JAVA_HOME
el sistema operativo Ubuntu. jdk 1.7
Lo copié /usr/lib/jvm
y lo puse JAVA_HOME
en /etc/profile
un archivo.
El contenido de /usr/lib/jvm
la carpeta es el siguiente:
shekhar@ubuntu:~$ ls /usr/lib/jvm/
default-java java-1.6.0-openjdk java-6-openjdk java-6-openjdk-i386 jdk1.7.0_01
java-1.5.0-gcj-4.6 java-1.6.0-openjdk-i386 java-6-openjdk-common java-7-openjdk-i386
y las últimas líneas del /etc/profile
archivo son las siguientes:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_01
export PATH=$PATH:$JAVA_HOME/bin
Después de terminar todo esto, cuando ejecuto java -version
el comando obtengo el siguiente resultado:
shekhar@ubuntu:~$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
y cuando ejecuto ls -lah
el comando obtengo el siguiente resultado:
shekhar@ubuntu:~$ ls -lah /usr/bin/java
lrwxrwxrwx 1 root root 22 Sep 29 09:58 /usr/bin/java -> /etc/alternatives/java
shekhar@ubuntu:~$ ls -lah /etc/alternatives/java
lrwxrwxrwx 1 root root 45 Sep 29 09:58 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
¿Alguien puede decirme qué me falta? ¿Por qué Ubuntu sigue apuntando a abrir jdk y no a mi jdk 7?
PD: lo he vistoeste similarpregunta y sus respuestas, pero esa pregunta está relacionada con el sistema operativo Windows y no con Ubuntu, por lo que volveré a publicar esta pregunta similar para Ubuntu.
Respuesta1
Estableciste la variable de entorno JAVA_HOME y luego la usaste para configurar tu RUTA. Sin embargo, la ruta que establezca también consta de la ruta existente. Básicamente, acabas de agregar algo más a tu ruta existente.
La ruta a su JDK1.7 se agrega al final de la ruta. Cuando escribe 'java --version' en la línea de comando, el sistema busca en la ruta de principio a fin hasta que encuentra una ruta que tiene el comando 'java'. Por lo tanto, lo que está viendo es la versión resultante de una de sus otras versiones de Java.
Lo que normalmente hago en Ubuntu es mirar mi ruta:
echo $PATH
y luego busque posibles rutas de JVM cerca del principio. En ese punto, tendría varias opciones para solucionar este problema:
Cree un enlace simbólico que apunte al sistema a su nueva ruta de Java.
Elimine la versión anterior de Java y elimínela de su ruta.
Yo optaría por la opción 2. Es menos confuso deshacerse de lo que no necesita.
Respuesta2
Tuve el mismo problema y la respuesta está oculta en la RUTA:
ejecutar "$ env | grep java" muestra:
PATH=/u01/app/oracle/product/11.2.0/xe/bin:/home/rivaldo/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/java/jdk1.6.0_14/bin:/home/rivaldo/bin/eclipse.JEE.Kepler.64
JAVA_HOME=/usr/local/java/jdk1.6.0_14
JDK_HOME=/usr/local/java/jdk1.6.0_14
pero al ejecutar "java -version" todavía se muestra:
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
Descubrí que mi RUTA tiene "/usr/bin" antes de "/java/jdk1.6.0_14/bin" y al hacer "ll /usr/bin | grep java" obtuve:
lrwxrwxrwx 1 root root 39 Jul 31 08:29 /etc/alternatives/java -> /usr/lib/jvm/java-7-oracle/jre/bin/java*
Cambié el enlace simbólico por el correcto y el problema se resolvió. También puedes cambiar el orden en la ruta:
de
export PATH=$PATH:$JAVA_HOME/bin
a
export PATH=$JAVA_HOME/bin:$PATH
Respuesta3
Personalmente, me enfrentaba exactamente al mismo tipo de problema en una nueva instalación de Ubuntu 12.04. Todo lo que tuve que hacer fue desinstalar un paquete específico usando el siguiente comando:
sudo apt-get remove openjdk-6-jre-headless
Esto eliminó el enlace en /etc/alternatives y lo actualizó al java 1.7 instalado.
Solo quería compartir, ya que esto completa el punto 2 de la respuesta de jmort253.