¿JAVA_HOME debe apuntar a JDK o JRE?

102

Señalé el JAVA_HOMEa C:\Program Files (x86)\Java\jre7. Funciona bien. Luego, descomprimí ant y configuré las variables de entorno relacionadas con Ant, recibí los siguientes mensajes de error después de escribir"ant -version"

imagen

Busqué en este foro. Parece que una solución es apuntar Java a JDK en lugar de JRE. No estoy exactamente seguro de si esta debería ser la solución. En otras palabras, en general, ¿a cuál debería apuntar JAVA_HOME? ¿JDK o JRE?

user297850
fuente

Respuestas:

121

Si está realizando algún tipo de desarrollo, o compilando con Maven o Ant, debe apuntar al JDK (Java Development Kit) donde javacresiden utilidades como (el compilador de Java). De lo contrario, puede apuntar a JRE (Java Runtime Environment).

El JDK contiene todo lo que tiene el JRE y más. Si solo está ejecutando programas Java, puede apuntar al JRE o al JDK.

David W.
fuente
7
Por eso JAVA_HOMEse utiliza para hacer dos cosas: 1: para herramientas de desarrollo, buscar javac.exe. 2: para herramientas ajenas al desarrollo, hallazgo java.exe. Esto parece violar "una herramienta para una cosa" . ¿No JDK_HOMEdebería usarse en su lugar?
Pacerier
4
El diagrama de este sitio muestra la relación entre JDK y JRE. docs.oracle.com/javase/8/docs
andrybak
1
¿Es posible validar programáticamente si la ruta de Java está configurada como JRE o JDK?
Dinesh Kumar P
9

Simplemente (cambie a su jdk1.xxx_xx)

JAVA_HOME = C: \ Archivos de programa \ Java \ jdk1.8.0_05

Amr Lotfy
fuente
6

Mi JAVA_HOME apunta al JDK. Si aún no funciona, verifique si descargó ant para Java 7 y no para Java 6.

das_j
fuente
5

Generalmente, no importa si lo apuntas a JRE o JDK. Depende de la aplicación que lo utilice. La documentación de Ant dice que debe apuntar a JDK para obtener todas las funciones de Ant.

Jan Martiška
fuente
2

como desarrollador, debe apuntar su JAVA_HOME a jdk para acceder al copiler de javac, etc. Sin embargo, es bueno si puede probar su programa para que se ejecute en el JRE. Si está utilizando un servidor de aplicaciones, a menudo también necesita el JDK en lugar del JRE, pero eso depende del servidor en particular.

Akostadinov
fuente
2

Puede usar el JDK o el JRE pero:

El lanzador utiliza JAVA_HOME para encontrar el JDK / JRE que se va a utilizar. (Se recomienda JDK ya que algunas tareas requieren las herramientas de Java).
. Configuración ANT_HOME

Michaelok
fuente
0

Hagámoslo simple. Vaya a la configuración y busque "Variables de entorno". Una vez que aparezca la ventana de variables de entorno, simplemente cree una nueva variable de SISTEMA haciendo clic en NUEVO y luego en BROWSE DIRECTORY hasta que ubique la ruta de instalación del JDK. El JDK debe instalarse en archivos de programa y verá una carpeta JAVA y dentro de la carpeta está JDK y JRE ... Si escribe código, debe seleccionar JDK !!! No escuches a nadie que diga que JRE será suficiente ... ¡NO! ¡No lo hará! El directorio adecuado debería verse así : C: \ Archivos de programa \ Java \ jdk1.8.0_144 ¡ Es tan simple como eso!

nexogen.io
fuente
2
@Stephan Las respuestas existentes ya brindan la información que me tomé el tiempo de brindar. ¿Esa es su justificación para votar en contra? Este es el problema con muchos de estos hilos. Por un lado, el hecho de que se haya respondido el principio básico no significa que la respuesta esté bien formada o incluso sea útil. Mi respuesta no es en absoluto igual a las respuestas anteriores. La respuesta que proporcioné, vino con instrucciones precisas
nexogen.io