1 votos

Cambiar JAVA_HOME en cmd temporalmente no cambia PATH temporalmente en ventanas

He definido JAVA_HOME a jdk11 en la variable de entorno de los usuarios y PATH contiene %JAVA_HOME%/bin en ella.

Ahora quiero cambiar a jdk8 temporalmente en el símbolo del sistema ( cmd ) cambiando JAVA_HOME a jdk8 pero no cambia el valor en path o java -version no cambia en la instancia actual de cmd.

PS- He eliminado los archivos c: \ Datos de programa \ Oracle \ java .. para evitar confusiones

2voto

DavidPostill Puntos 30286

No cambia de valor en la ruta o java -versión no cambia en la instancia actual de cmd

Tendrá que reiniciar cmd para que los cambios surtan efecto como cmd shell hereda entorno de ti de manera que el proceso padre.


Entonces, ¿cuál es la forma correcta de cambiar entre versiones de Java desde la línea de comandos?

El uso de un conjunto de archivos de proceso por lotes, de la siguiente manera:

Ser un desarrollador de Java, yo siempre compilar y probar mi código en diferentes versiones de Java. Sin embargo, el cambio entre ellos es un gran problema. Así que finalmente he encontrado un método fácil de hacer esto. Tienes que crear los siguientes archivos por lotes y colocarlos en el directorio de abrir la línea de comandos o en la PATHde acceso del SISTEMA. Usted puede usar su editor de texto favorito para crear estos archivos.

jdk14.bat

@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\j2sdk1.4.2_12
echo setting PATH
set PATH=C:\j2sdk1.4.2_12\bin;%PATH%
echo Display java version
java -version

jdk15.bat

@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
echo setting PATH
set PATH=C:\Program Files\Java\jdk1.5.0_12\bin;%PATH%
echo Display java version
java -version

jdk16.bat

@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_11
echo setting PATH
set PATH=C:\Program Files\Java\jdk1.6.0_11\bin;%PATH%
echo Display java version
java -version

Asegúrese de asignar el correspondiente JAVA_HOME valor en archivos de proceso por lotes, de acuerdo a su instalación de Java. Cada vez que desee cambiar entre versiones de Java, simplemente ejecute el archivo por lotes respectivos.

Nota: JAVA_HOME y la ruta de acceso de java debe siempre referirse a exactamente la misma versión de la JDK. Si los mezclan, impredecible cosas van a suceder!

Fuente de Cambiar entre las diferentes versiones JDK en Windows | Oracle Pranav del Blog

0voto

RalfFriedl Puntos 131

La razón de esto es que la variable de referencia en PATH se expande en el momento de la asignación a PATH, después de los cambios se omite la referencia al valor original se pierde. Es como hacer una copia de el valor de la variable, no la creación de una referencia a la variable.

set JAVA_HOME=C:\dir1
PATH=%JAVA_HOME%
set JAVA_HOME=C:\dir2
PATH

Esta es la salida C:\dir1 (valor de JAVA_HOME en el momento de la cesión) y no %JAVA_HOME%.

Necesita un script como este a la llamada después de un cambio en JAVA_HOME:

PATH=%JAVA_HOME%;C:\Windows\system32;C:\Windows;...

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: