Necesitamos hacer una distinción entre las dos variables de entorno que se discuten aquí indistintamente. Una es la variable JAVA_HOME . La otra es la variable Ruta . Cualquier proceso que haga referencia a la variable JAVA_HOME está buscando la ruta de búsqueda al JDK, no al JRE. El uso de la variable JAVA_HOME no está destinado al compilador de Java en sí. El compilador conoce su propia ubicación. La variable está diseñada para que otro software localice más fácilmente el compilador. El software IDE suele utilizar esta variable para compilar y crear aplicaciones a partir del código fuente de Java. Por el contrario, el intérprete CMD de Windows y muchos otros software de primera y tercera referencia hacen referencia a la variable Path, no a la variable JAVA_HOME.
Caso de uso 1: compilación desde CMD
Entonces, por ejemplo, si no está utilizando ningún software IDE y solo desea poder compilar desde el CMD, independientemente de su directorio de trabajo actual, entonces lo que desea es establecer la variable Path correctamente. En su caso, ni siquiera necesita la variable JAVA_HOME. Como CMD está utilizando Path, no JAVA_HOME para localizar el compilador de Java.
Caso de uso 2: compilando desde IDE
Sin embargo, si está utilizando algún software IDE, primero debe consultar la documentación. Puede requerir que se establezca JAVA_HOME, pero también puede usar otro nombre de variable para el mismo propósito. El estándar de facto a lo largo de los años ha sido JAVA_HOME, pero este no siempre es el caso.
Caso de uso 3: compilación de IDE y CMD
Si además del software IDE también desea poder compilar desde el CMD, independientemente de su directorio de trabajo actual, entonces, además de la variable JAVA_HOME, es posible que necesite agregar la ruta de búsqueda JDK a la variable Ruta.
JAVA_HOME vs. Path
Si su problema se relaciona con la compilación de Java, entonces desea verificar la variable JAVA_HOME y la Ruta (donde corresponda). Si su problema se relaciona con la ejecución de aplicaciones Java, entonces desea verificar su variable Path.
La variable de ruta se usa universalmente en todos los sistemas operativos. Debido a que está definido por el sistema y a que es la variable predeterminada que se usa para localizar el JRE, casi nunca hay ningún problema al ejecutar aplicaciones Java. Especialmente no en Windows, donde los instaladores de software generalmente configuran todo para usted. Pero si está instalando manualmente, lo más seguro es quizás omitir la variable JAVA_HOME por completo y simplemente usar la variable Path para todo, tanto para JDK como para JRE. Cualquier versión reciente de un software IDE debería poder recogerlo y usarlo.
Enlaces simbólicos
Los enlaces simbólicos pueden proporcionar otra forma de hacer referencia a la ruta de búsqueda JDK al aprovechar una de las variables de entorno existentes.
No estoy seguro acerca de las versiones anteriores de Oracle / Sun JDK / JRE, pero al menos el instalador de jdk1.8.0_74 agrega la ruta de búsqueda C:\ProgramData\Oracle\Java\javapath
a la variable Ruta y la coloca al comienzo del valor de la cadena. Este directorio contiene enlaces simbólicos a java.exe, javaw.exe y javaws.exe en el directorio JRE.
Entonces, al menos con el Java 8 JDK, y presumiblemente el Java 8 JRE autónomo, no es necesario realizar una configuración de variable de entorno para el JRE. Siempre que use el paquete de instalación para configurarlo. Sin embargo, puede haber diferencias en su instalación de Windows. Tenga en cuenta que Oracle JRE viene incluido con el JDK.
Si alguna vez encuentra que su configuración JDK de Java está utilizando la versión incorrecta del compilador, o parece estar funcionando por arte de magia, sin estar explícitamente definido (sin lanzar el hechizo), entonces puede tener un enlace simbólico en alguna parte de sus variables de entorno . Por lo tanto, es posible que desee verificar el enlace simbólico.