Saltar al contenido

JAVA_HOME y PATH están configurados, pero java -version aún muestra el anterior

Nuestros desarrolladores estrellas agotaron sus provisiones de café, por su búsqueda todo el tiempo por la solución, hasta que Gustavo encontró el resultado en GitHub y hoy la compartimos aquí.

Solución:

Si bien parece que su configuración es correcta, hay algunas cosas que debe verificar:

  1. la salida de env – específicamente PATH.
  2. command -v java te dice que?
  3. Hay un java ejecutable en $JAVA_HOMEbin y tiene el conjunto de bits de ejecución? Que no chmod a+x java eso.

confío en que tienes source¿Tuviste tu .profile después de agregar/cambiar el JAVA_HOME y PATH?

Además, puede ayudarse a sí mismo en el mantenimiento futuro de su instalación de JDK escribiendo esto en su lugar:

export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=$JAVA_HOME/bin:$PATH

Luego, solo necesita actualizar una variable env cuando configura la instalación de JDK.

Finalmente, es posible que deba ejecutar hash -r para borrar el caché del programa Bash. Otros shells pueden necesitar un comando similar.

Salud,

update-java-alternatives

Él java ejecutable no se encuentra con su JAVA_HOMEsolo depende de tu PATH.

update-java-alternatives Una buena manera de administrarlo para todo el sistema es a través de:

update-java-alternatives -l

Salida de muestra:

java-7-oracle 1 /usr/lib/jvm/java-7-oracle
java-8-oracle 2 /usr/lib/jvm/java-8-oracle

Elige una de las alternativas:

sudo update-java-alternatives -s java-7-oracle

Me gusta update-alternatives, funciona a través de la gestión de enlaces simbólicos. La ventaja es que administra enlaces simbólicos a todas las utilidades de Java a la vez: javac, java, javapetc.

Todavía estoy por ver un JAVA_HOME efecto en el JDK. Hasta ahora, solo lo he visto utilizado en herramientas de terceros, por ejemplo, Maven.

Si quieres use JDK descargados del sitio de Oraclelo que funcionó para mí (usando Mint) es usar actualizar-alternativas:

  1. Descargué el JDK y lo extraje en cualquier lugar, por ejemplo en /home/aqeel/desarrollo/jdk/jdk1.6.0_35
  2. corrí:

    sudo update-alternatives --install /usr/bin/java java /home/aqeel/development/jdk/jdk1.6.0_35/bin/java 1
    

    Ahora usted puede ejecutar sudo update-alternatives --config java y elige tu versión java.

  3. Esto no establece el variable JAVA_HOMEque quería configurar, así que lo agregué a mi ~/.bashrc, incluido un export JAVA_HOME="/home/aqeel/development/jdk/jdk1.6.0_35" declaración

Ahora, tenía dos JDK descargados (digamos que el segundo ha sido extraído para /home/aqeel/desarrollo/jdk/jdk-10.0.1).

¿Cómo podemos cambiar JAVA_HOME dinámicamente en función del Java actual que se está utilizando?

Mi solución no es muy elegante, estoy bastante seguro de que hay mejores opciones, pero de todos modos:

  1. Para cambiar JAVA_HOME dinámicamente en función de la alternativa de Java elegidaagregué este fragmento a ~/.bashrc:

    export JAVA_HOME=$(update-alternatives --query java | grep Value: | awk -F'Value: ' 'print $2' | awk -F'/bin/java' 'print $1')
    

Finalmente (esto está fuera del alcance) si tienes que cambiar la versión de java constantementees posible que desee considerar:

  1. Agregar un alias para usted ~./bash_alias:

    alias change-java="sudo update-alternatives --config java"
    

(Es posible que deba crear el archivo y tal vez descomentar la sección relacionada con esto en ~/.bashrc)

Al final de la página puedes encontrar las notas de otros desarrolladores, tú igualmente tienes la libertad de dejar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *