¿Cómo puedo persuadir a Windows para que use el JDK en lugar de un JRE?
Esta pregunta se ha hecho antes, aquí y en otros lugares:
¿Cómo configuro el tiempo de ejecución / instalación de Java predeterminado (Windows)?
El problema es que Windows ignora JAVA_HOME
y también ignora el hecho de que hice que el directorio bin de JDK fuera la primera entrada en la ruta.
Cuando ejecuto java -version
desde la línea de comandos, en lugar de invocar mi instalación JDK 1.6, ejecuta 1.7 JRE.
Supongo que este es un problema específico de 1.7, y Windows 7 está haciendo algo que no debería hacer 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.
%JAVA_HOME%\bin
en primera posición depath
variable en Windows 10 y trabajo para mí.En Windows 8, es posible que desee eliminar el
C:\ProgramData\Oracle\Java\javapath
directorio.desde el camino
Resolvió mi problema.
fuente
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
yPATH
(tanto el usuario como el sistema) en vano.La respuesta es que el instalador de 1,6 se redujo
java.exe
,javaw.exe
yjavaws.exe
en miWindows\System32
carpeta (Windows 7).Lo resuelto por cambiar el nombre de los archivos a
java_wrong.exe
,javaw_wrong.exe
yjavaws_wrong.exe
. Solo después de hacer eso, toma la versión correcta de java como se define enJAVA_HOME
yPATH
. Cambié el nombre de los archivos porque eso los eliminó de una manera fácilmente reversible.¡Espero que esto ayude!
fuente
Windows no ignora nada. Este es un problema con su configuración; Windows solo usa lo que usted proporciona. No tiene ningún conocimiento especial de
JAVA_HOME
.CLASSPATH
tampoco tiene nada que ver con Windows. Para Windows, es solo una variable de entorno que se expande a una ubicación de carpeta.Verifique su
%PATH%
variable ambiental. Es lo que hace que Windows encuentre uno antes que el otro. La ruta (como la publicación a la que vinculó dijo) debe apuntar%JAVA_HOME%\bin;<remainder of path>
. Nuevamente, la publicación a la que 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% PATH% es abrir un símbolo del sistema y escribir
echo %PATH%
. También puede llegar allí haciendo clicComputer
derecho en el panel derecho del menú Inicio y seleccionandoProperties
, luegoAdvanced System Settings
, y elEnvironmental Variables
botón tne .)fuente
JAVA_HOME
que Windows.JAVA_HOME
debe establecerse en la raíz de la instalación de Java. La ruta debería haberlo hecho%JAVA_HOME%\bin;<remainder of path%gt;
, de lo contrario terminará sin "encontrar" java, javac, etc. Por supuesto, Windows realmente solo mira laPATH
variable, pero algunas herramientas relacionadas con java miran enJAVA_HOME
ocasiones.\bin
también. Gracias.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 para usar 1.6 (C: \ jdk1.6.0_45_32 \ bin).
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 antes era:
C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin;C:\jdk1.6.0_45_32\bin
y después de mover el jdk para ser el primero, funcionó:
C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin
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 utilizó primero en lugar de la entrada PATH personalizada especificada C: \ jdk1.6.0_45_32 \ bin;
fuente
Para mi caso en
'Path'
variable, se agregó un parámetro como 'C:\ProgramData\Oracle\Java\javapath;
'. Esta ubicación teníajava.exe
,javaw.exe
yjavaws.exe
desde Java 8, que se instaló recientemente a travésjdk.exe
de Oracle.He eliminado este texto de la ruta donde mi ruta ya lo tenía
%JAVA_HOME%\bin
.Ahora, la variable
'JAVA_HOME'
controla mi versión de Java, que es lo que quería.fuente
Suponga que ha instalado JDK 10 después de JDK 8 y en la variable de entorno del sistema establece una ruta como "C: \ ProgramData \ Oracle \ Java \ javapath" y luego controla la versión de Java por esta ruta. ignorará JAVA_HOME incluso la ruta jdk 1.8 establecida aquí. Así que elimine "C: \ ProgramData \ Oracle \ Java \ javapath" en la ruta para obtener el efecto de la ruta JAVA_HOME
fuente
Tenía Java 7 y 8 instalados y quiero redirigir a Java 7, pero la versión de Java en mi ventana del indicador de cmd muestra Java 8. Se
agregó la ruta del directorio bin de Java 7 ( C: \ Program Files \ Java \ jdk1.7.0_10 \ bin ) a la variable PATH al final, pero no funcionó y muestra Java 8. Así que cambié la ruta de Java 7 al inicio del valor de la ruta y funcionó.
Abrí una nueva ventana del indicador de cmd y verifiqué mi versión de Java y ahora muestra Java 7
fuente
Establezca la variable de entorno Path en su directorio jdk / bin deseado
fuente
En mi caso, tenía Java 7 y 8 (ambos x64) instalados y quiero redirigir a Java 7, pero todo está configurado para usar Java 8. Java usa la variable de entorno PATH:
como primera opción para buscar su carpeta en tiempo de ejecución (es una carpeta oculta). Esta ruta contiene 3 enlaces simbólicos que no se pueden editar.
En mi PC, la variable de entorno PATH se ve así:
En mi caso, debería verse así:
Tuve que cortar y pegar los enlaces simbólicos en otro lugar para que Java no pueda encontrarlos y pueda restaurarlos más tarde.
Después de configurar las variables de entorno JAVA_HOME y JRE_HOME en los tiempos de ejecución de las carpetas Java deseadas (en mi caso, es Java 7), el comando
java -version
debería mostrar el tiempo de ejecución Java deseado. Observo que no hay necesidad de meterse con el registro.Probado en Win7 x64.
fuente
Este problema probablemente se deba a las versiones anteriores de Java instaladas en su sistema. Primero verifique sus variables de entorno con cuidado y elimine todas las variables de entorno relacionadas con las versiones anteriores de JAVA y reemplace esas rutas a
C:\Program Files\Java\<your new jdk version>\bin
fuente
Aquí hay un factor adicional; Además de los ejecutables java que la instalación de java coloca donde le pida que los coloque, en Windows, el instalador de java también coloca copias de algunos de esos ejecutables en su directorio system32 de Windows, por lo que es probable que esté usando cada uno de los ejecutables java instalado más recientemente.
fuente
En caso de que esté utilizando el archivo .BAT como servicio de Windows, sugeriría desinstalar el servicio de Windows y volver a instalarlo después de cambiar% JAVA_HOME% para que apunte a la versión correcta de Java.
fuente
Después de luchar con este problema durante algún tiempo e investigar al respecto, finalmente logré resolverlo siguiendo estos pasos:
1) instale jdk versión 12
2) Cree una nueva variable en la variable de sistemas
3) Nómbrela como JAVA_HOME y proporcione la ruta de instalación de jdk
4) agregue esta variable en la ruta y muévala al principio.
5) vaya a C: \ Archivos de programa (86) \ Common Files \ Oracle \ Java \ javapath y reemplace java.exe y javaw.exe con los archivos correspondientes con los mismos nombres de la carpeta pathtojavajdk / bin
Finalmente, verifiqué la versión predeterminada de java en cmd con "java -version" y funcionó.
fuente