Sí - sólo prevé explícitamente la ruta a JAVA.EXE. Por ejemplo:
c:\Users\Jon\Test>"c:\Program Files\java\jdk1.6.0_03\bin\java.exe" -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
c:\Users\Jon\Test>"c:\Program Files\java\jdk1.6.0_12\bin\java.exe" -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
La forma más sencilla de hacer esto por un intérprete de comandos correr es algo así como:
set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%
Por ejemplo, he aquí una sesión completa mostrando mi defecto JVM, entonces el cambio a la ruta , entonces el nuevo:
c:\Users\Jon\Test>java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
c:\Users\Jon\Test>set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%
c:\Users\Jon\Test>java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
Esto no cambiará los programas que explícitamente usan JAVA_HOME.
Tenga en cuenta que si obtiene el directorio incorrecto en la ruta, incluido uno que no existe, no obtendrá ningún error, simplemente se ignorará.
Guau, este es un lanzamiento definitivo. Estaba a punto de publicar aproximadamente las primeras dos líneas de tu respuesta cuando apareció la notificación. –
@Jon Skeet ¿Cómo puedo hacer esto en un programa Java? Quiero ejecutar .jar usando un JRE de 32 bits, ¿puedo establecer la ruta JRE para el nuevo proceso a partir del código Java? –
@Utku: Bueno, cuando creas un proceso, puedes pasar la ruta completa al ejecutable ... –