Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?

6 minutos de lectura

Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?
ccleve

¿Cómo persuado a Windows para que use JDK en lugar de JRE?

Esta pregunta se ha hecho antes, aquí y en otros lugares:

¿Cómo configuro la instalación/tiempo de ejecución de Java predeterminado (Windows)?

El problema es que Windows ignora JAVA_HOME y también ignora el hecho de que hice del directorio bin JDK la primera entrada en la ruta.

cuando corro java -version desde la línea de comandos, en lugar de invocar mi instalación de JDK 1.6, ejecuta 1.7 JRE.

Mi conjetura es que este es un problema específico de 1.7, y Windows 7 está haciendo algo que no debería con el registro.

¿Alguna idea sobre cómo solucionar este problema?

Editar: UPS. Escribí “primera entrada en el classpath” arriba, cuando quise decir “ruta”. Lo siento.

Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?
erickson

En Windows, el java ejecutable utiliza el Registro de Windows para localizar la versión predeterminada de Java para ejecutar.

la copia de java.exe para ejecutar se encuentra usando el PATH Variable ambiental. A menos que tome medidas para cambiar esto, de forma predeterminada se encontrará una copia en el directorio de Windows. Dado que esta copia no está en un directorio de tiempo de ejecución de Java, localiza uno mirando el registro.

Entonces, debe modificar el registro o poner la versión de Java que desea antes de el directorio de Windows en su PATH.

  • OP aquí. Ver mi edición de arriba. Sí, eso lo resolvió. Dos notas: primero, parece que el instalador de Java realmente puso java.exe en WindowsSystem32. Esto es asombroso para mí. En segundo lugar, cuando modifica la ruta en Equipo/Propiedades/Configuración avanzada del sistema/Variables de entorno, debe modificar la sistema camino, no el usuario sendero. La ruta del sistema se pone a sí misma en primer lugar.

    – ccleve

    31 mar. 11 a las 17:00


  • También subrayaré el punto del usuario 237815 de que parece que el instalador de Java en realidad coloca su java.exe en WindowsSystem32. Esto ciertamente no fue intuitivo para mí. Solo después de verificar la “versión de Java” desde una consola obtuve un nivel de comodidad de que Windows ahora estaba usando el java.exe que quería de mi instalación de JDK en lugar de una versión anterior no deseada.

    – John Tobler

    25 ene.

  • El problema también se resolvió en mi caso cambiando el nombre de java.exe, javaw.exe y javaws.exe en mi carpeta Windows/System32. Entonces, y solo entonces, java -version muestra la versión que está configurada en JAVA_HOME y la RUTA

    – Inverso

    25 sep.

  • ¡Salvaste mi día! Mover la entrada relacionada con el JDK antes de Windows en PATH resolvió el problema. ¡Muchas gracias!

    – el_destructor_oscuro

    10 ene.

  • puse %JAVA_HOME%bin en primera posición de path variable en Windows 10 y me funciona.

    – Wendel

    31 mayo 2016 en 19:01


Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?
Arun

En Windows 8, es posible que desee eliminar
C:ProgramDataOracleJavajavapath
directorio.

desde el camino

Resolvió mi problema.

  • En Windows 10, es: C:Program Files (x86)Common FilesOracleJavajavapath. Esto se agrega automáticamente a la variable Ruta del sistema. Elimine eso y establezca su ubicación de ruta personalizada.

    – Dexter

    16 sep.


  • el comentario anterior ayudó en el caso de Windows 10

    – Saba Ahang

    30 jun.

Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?
Inverso

Yo también tengo este problema. Estoy ejecutando 1.6 pero quiero compilar el código en el que estoy trabajando con 1.5. he cambiado el JAVA_HOME y PATH (tanto el usuario como el sistema) en vano.

La respuesta es que el instalador de 1.6 cayó java.exe, javaw.exe, y javaws.exe en mi WindowsSystem32 carpeta (Windows 7).

Lo resolví cambiando el nombre de esos archivos a java_wrong.exe, javaw_wrong.exe, y javaws_wrong.exe. Solo después de hacer eso, selecciona la versión correcta de Java como se define en JAVA_HOME y PATH. Cambié el nombre de los archivos de esta manera porque los eliminó de una manera fácilmente reversible.

¡Espero que esto ayude!

  • En lugar de renombrar, podrías modificar la variable PATH especificando como primer valor %JAVA_HOME%bin, de esa forma sería el primer valor que tomará

    – maxivis

    07 ene.

  • @maxivis Gracias. Supongo que el problema podría haber sido el orden de los elementos PATH de modo que WindowsSystem32 fuera anterior a JAVA_HOME. Simplemente les cambié el nombre para que se eliminaran efectivamente de forma reversible.

    – Inverso

    21 ene.


  • De alguna manera, configurar JAVA_HOME en la ruta no funcionaba de ninguna manera para mí, este realmente lo resolvió.

    – Guilherme Orioli

    30 oct.

  • El problema no se resolvió hasta que reinicié la computadora después de los cambios.

    – G. Ciardini

    30 abr.

Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?
ken blanco

Windows no ignora nada. Este es un problema con su configuración; Windows solo usa lo que usted proporciona. No tiene un conocimiento especial de JAVA_HOME.

CLASSPATH tampoco tiene nada que ver con Windows. Para Windows, es solo una variable ambiental que se expande a una ubicación de carpeta.

Revisar su %PATH% variable ambiental. Es lo que hace que Windows encuentre uno antes que el otro. La ruta (como dice la publicación a la que se vinculó) debe apuntar a %JAVA_HOME%bin;<remainder of path>. Nuevamente, la publicación a la que se vinculó le dio una forma de configurar esto usando un archivo por lotes.

(Para otros que quizás no sepan esto: la forma más fácil de inspeccionar el %PATH% es abrir un símbolo del sistema y escribir echo %PATH%. También puede llegar allí haciendo clic con el botón derecho en Computer en el panel derecho del menú Inicio y eligiendo Properties, entonces Advanced System Settings, y el tne Environmental Variables botón.)

Tuve el mismo problema. Tengo un montón de versiones de Java instaladas y, por alguna razón, se estaba usando Java 1.7 en lugar de Java 1.6, aunque especifiqué en la ruta usar 1.6 (C:jdk1.6.0_45_32bin).

Tuve que mover la ruta del JDK que quería usar (1.6) para que fuera la primera entrada en la variable de entorno PATH para asegurarme de que Windows usa 1.6 en lugar de 1.7.

Entonces, por ejemplo, la variable de entorno PATH anterior era:

C:Program Files (x86);...<other entries>;C:devant181bin;C:jdk1.6.0_45_32bin

y después de que moví el jdk para que fuera el primero, funcionó:

C:jdk1.6.0_45_32bin;C:Program Files (x86);...<other entries>;C:devant181bin

Supongo que el instalador de Windows de Java 1.7 lo instaló en algún otro directorio que ya estaba en la RUTA, por lo que se usó primero en lugar de la entrada de RUTA personalizada especificada C:jdk1.6.0_45_32bin;

  • gracias hermano. Mover JAVA_HOMEbin path como primer elemento de la variable Path me salvó la vida.

    – ÖMER TAŞCI

    23 feb. 17 en 10:32

Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?
Samir 007

ingrese la descripción de la imagen aquíSupongamos que ha instalado JDK 10 después de JDK 8 y en la variable de entorno del sistema establece una ruta como “C:ProgramDataOracleJavajavapath”, luego controle la versión de Java por esta ruta. ignorará JAVA_HOME incluso la ruta jdk 1.8 establecida aquí Así que elimine “C:ProgramDataOracleJavajavapath” en la ruta para obtener el efecto de la ruta JAVA_HOME

  • gracias hermano. Mover JAVA_HOMEbin path como primer elemento de la variable Path me salvó la vida.

    – ÖMER TAŞCI

    23 feb. 17 en 10:32

Windows ignora JAVA_HOME: ¿cómo configurar JDK como predeterminado?
esta.chica

Para mi caso en 'Path' variable se agregó un parámetro como ‘C:ProgramDataOracleJavajavapath;‘. Esta ubicación estaba teniendo java.exe, javaw.exe y javaws.exe de Java 8 que se instaló recientemente a través de jdk.exe de Oráculo.

Eliminé este texto de Path donde mi Path ya tenía %JAVA_HOME%bin con eso.

Ahora, la variable 'JAVA_HOME' está controlando mi versión de Java, que es lo que quería.

.

¿Ha sido útil esta solución?