Estoy trabajando en unos proyectos y algunos de ellos están utilizando diferentes JDK. El cambio entre versiones JDK no es cómodo. Así que me preguntaba si hay alguna manera de cambiarla?

He encontrado 2 maneras, lo que debería solucionar este problema, pero no funciona.

La primera solución es la creación de un bate de los archivos de este tipo:

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

Y después de la ejecución de este murciélago, puedo ver a la derecha la versión de Java. Pero cuando quiero cerrar este CMD y abrir uno nuevo y tipo «java-version» dice que todavía tengo 1.8.0_25. Así no funciona.

Segunda solución que he encontrado es una aplicación de este sitio. Y también no funciona. El mismo efecto como en la primera solución.

Alguna idea? Porque el cambio de entorno JAVA_HOME y PAHT por: Win + Pausa -> Configuración Avanzada del Sistema -> Variables de Entorno -> y la edición de estas variables, es terrible manera…

Establecer la ruta con el archivo de proceso por lotes, y ejecutar java también en el interior de archivo de proceso por lotes.
Como se puede ver tanto en variables de configuración en el archivo de proceso por lotes. Pero no sé cómo ejecutar java dentro de este archivo. He encontrado esta solución en otra página y no sé cómo escribir archivos de proceso por lotes.

OriginalEl autor Lui | 2014-11-18

3 Comentarios

  1. 17

    La set comando sólo funciona para la terminal actual. Para ajustar de forma permanente un sistema o de una variable de entorno de usuario puede utilizar setx.

    setx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_72" /m

    La /m opción se utiliza para establecer la variable de todo el sistema (y no sólo para el usuario actual). El terminal se debe ejecutar como administrador para utilizar esta opción.

    La variable estará disponible en todos los nuevos terminales con windows, pero no es la actual. Si desea mostrar la ruta de acceso en la misma ventana, es necesario utilizar tanto set y setx.

    Puede evitar la manipulación de la PATH variable si usted acaba de una vez poner %JAVA_HOME% allí, en lugar de la plena ruta del JDK. Si cambia JAVA_HOME, PATH también recibirá una actualización.


    También hay un par de variable de entorno editores como alternativa a la engorroso de Windows configuración de variables de entorno. Consulte «Es allí una manera conveniente para editar la RUTA de acceso en Windows 7?» en el Super Usuario.

    Hmmm algo está mal… yo lo hice como dijiste y añade estas variables, pero para el usuario… Y aún cuando abro el nuevo terminal, tengo información que he diferentes JDK que quiero…
    Faltaba la opción /m, he actualizado la respuesta.
    Gracias 🙂 Ahora funciona 😉
    También tengo para sustituir el segundo «set» con «setx» (línea: set PATH=C:\Archivos de Programa\Java\jdk1.7.0_72\bin;%PATH%)?
    Si permanentemente desea cambiar la RUTA de acceso, es necesario utilizar setx allí también. Se añade el java ruta de acceso cada vez que se ejecute el script, aunque, por lo que puede ser mejor para quitar la línea y para agregar %JAVA_HOME% a la RUTA sólo una vez

    OriginalEl autor kapex

  2. 0

    Si la ruta tiene menos de 1024 caracteres puede execute (Ejecutar como Administrador) este script:

    @echo off 
    set "JAVA5_FOLDER=C:\Java\jdk1.5.0_22"
    set "JAVA6_FOLDER=C:\Java\jdk1.6.0_45"
    set "JAVA7_FOLDER=C:\Java\jdk1.7.0_80"
    set "JAVA8_FOLDER=C:\Java\jdk1.8.0_121"
    set "JAVA9_FOLDER=C:\Java\jdk-10.0.1"
    set "CLEAR_FOLDER=C:\xxxxxx"
    (echo "%PATH%" & echo.) | findstr /O . | more +1 | (set /P RESULT= & call exit /B %%RESULT%%)
    set /A STRLENGTH=%ERRORLEVEL%
    echo path length = %STRLENGTH%
    if %STRLENGTH% GTR 1024  goto byebye 
    echo Old Path: %PATH%
    echo =================== 
    echo Choose new Java Version:
    echo [5] JDK5
    echo [6] JDK6 
    echo [7] JDK7
    echo [8] JDK8
    echo [9] JDK10
    echo [x] Exit
    :choice 
    SET /P C=[5,6,7,8,9,x]? 
    for %%? in (5) do if /I "%C%"=="%%?" goto JDK_L5 
    for %%? in (6) do if /I "%C%"=="%%?" goto JDK_L6
    for %%? in (7) do if /I "%C%"=="%%?" goto JDK_L7 
    for %%? in (8) do if /I "%C%"=="%%?" goto JDK_L8 
    for %%? in (9) do if /I "%C%"=="%%?" goto JDK_L9
    for %%? in (x) do if /I "%C%"=="%%?" goto byebye
    goto choice 
    @echo on
    :JDK_L5  
    set "NEW_PATH=%JAVA5_FOLDER%"
    goto setPath
    :JDK_L6  
    @echo off 
    set "NEW_PATH=%JAVA6_FOLDER%"
    goto setPath
    :JDK_L7  
    @echo off 
    set "NEW_PATH=%JAVA7_FOLDER%"
    goto setPath
    :JDK_L8  
    @echo off 
    set "NEW_PATH=%JAVA8_FOLDER%"
    goto setPath
    :JDK_L9  
    @echo off 
    set NEW_PATH = %JAVA9_FOLDER%
    :setPath
    Call Set "PATH=%%PATH:%JAVA5_FOLDER%=%CLEAR_FOLDER%%%"
    Call Set "PATH=%%PATH:%JAVA6_FOLDER%=%CLEAR_FOLDER%%%"
    Call Set "PATH=%%PATH:%JAVA7_FOLDER%=%CLEAR_FOLDER%%%"
    Call Set "PATH=%%PATH:%JAVA8_FOLDER%=%CLEAR_FOLDER%%%"
    Call Set "PATH=%%PATH:%JAVA9_FOLDER%=%CLEAR_FOLDER%%%"
    rem echo Interim Path: %PATH%
    Call Set "PATH=%%PATH:%CLEAR_FOLDER%=%NEW_PATH%%%" 
    setx PATH "%PATH%" /M
    call set "JAVA_HOME=%NEW_PATH%"
    setx JAVA_HOME %JAVA_HOME% 
    echo New Path: %PATH%
    :byebye
    echo
    java -version
    pause

    Si más de 1024, intente quitar algunos innecesarios caminos, o se puede modificar este secuencias de comandos con algunas aportaciones de https://superuser.com/questions/387619/overcoming-the-1024-character-limit-with-setx

    OriginalEl autor Conete Cristian

  3. 0
    1. Abrir Environment Variables editor (el Explorador de Archivos > clic derecho en
      Este PC > Propiedades > configuración Avanzada del sistema > medio Ambiente
      Variables…)
    2. Encontrar Path variable en variables del Sistema lista >
      pulse el botón de Editar > poner %JAVA_HOME%bin; en primera posición. Esto es necesario
      debido a que el instalador de Java añade C:\Program Files (x86)\Common
      Files\Oracle\Java\javapath
      a la PATH que las referencias a la última versión de Java instalada. La conmutación entre diferentes versiones JDK en Windows
    3. Ahora usted puede cambiar entre la versión de Java utilizando setx comando (debe ejecutarse bajo permisos administrativos):

      setx /m JAVA_HOME "c:\Program Files\Java\jdk-10.0.1\

      (nota: no hay doble cita al final de la línea y no debe ser o usted conseguirá c:\Program Files\Java\jdk-10.0.1\" en su JAVA_HOME variable y rompe su PATH variable)

    Solución con variables del sistema (y los permisos administrativos) es más sólida, porque no pone la ruta deseada para Java en el inicio de la resultante de PATH variable.

    OriginalEl autor Lu55

Dejar respuesta

Please enter your comment!
Please enter your name here