ant classpath java-home

¿Por qué ANT me dice que JAVA_HOME está equivocado cuando no es así?



classpath java-home (24)

  1. En Eclipse, haga clic en EjecutarHerramientas externasConfiguraciones de herramientas externas .
  2. Haga clic en la pestaña JRE .
  3. Haga clic en el botón JRE instalados ...
  4. Haga clic en el botón Agregar .
    (Seleccione VM estándar , cuando corresponda).
  5. Haga clic en el botón Directorio .
  6. Busque su versión JDK (no JRE) de su Java instalada
    (por ejemplo, C:/Program Files/Java/jdk1.7.0_04 ).
  7. Haga clic en Finalizar y Aceptar .
  8. Seleccione el JDK en JRE Separado y haga clic en Cerrar .
  9. Vuelve a ejecutar tu script Ant: ¡diviértete!

Esto funcionó en un escenario particular que encontré.

Me sale el error:

C: / dev / ws / springapp / build.xml: 81: no se puede encontrar un compilador javac; com.sun.tools.javac.Main no está en la ruta de clase. Quizás JAVA_HOME no apunte al JDK. Actualmente está configurado en "C: / Archivos de programa / Java / jre6"

Pero claramente he configurado mi JAVA_HOME para que sea C: / Program Files / Java / jdk1.6.0_14

¿Dónde está ANT obteniendo este valor?


Asegúrese de no utilizar el punto y coma final: Esto no funcionará:

set JAVA_HOME=C:/Program Files (x86)/Java/jdk1.6.0_29;

Esta voluntad:

set JAVA_HOME=C:/Program Files (x86)/Java/jdk1.6.0_29


Cuando dice que ha "establecido claramente" JAVA_HOME en "C: / Archivos de programa / Java / jdk1.6.0_14" - ¿eso es lo que ve cuando ejecuta "establecer" desde la línea de comando? Creo que Ant adivinará un valor para JAVA_HOME si uno no está configurado ... ¿es posible que hayas configurado JAVAHOME en lugar de JAVA_HOME?

Si no es así, le sugiero que edite el archivo por lotes ant.bat (y lo que sea que llame, no recuerdo si es intrincado o no) para imprimir JAVA_HOME al principio y en otros lugares interesantes.


Cuando todo lo demás es correcto, intente lo siguiente

  1. Ir a ventana -> Preferencias -> Ant -> Runtime -> ClassPath
  2. Expanda Entradas globales y compruebe las herramientas jdk disponibles aquí.
  3. Agregue las herramientas necesarias.jar de una versión específica de Java como "C: / Archivos de programa / Java / jdk1.6.0_45 / lib / tools.jar"
  4. Ahora crea y verifica los resultados.

Nota: Agregue tools.jar para el compilador de Java que desea usar y déle preferencia moviéndolo hacia arriba en la lista de herramientas.jar cuando haya múltiples tools.jar (compiladores de Java) presentes.


De hecho, encontré esta respuesta en superuser.com, pero tuve que copiar tools.jar de mi directorio JDK / lib al directorio JRE / lib.

Tiene sentido ZERO ... lo único que se me ocurre es que Sun introdujo este error en el último tiempo de ejecución Java (Java 7 Update 11) o un error en Ant en cómo lee la ubicación actual de JDK (el JRE está más actualizado que el JDK obviamente, que también es estúpido de Sun ... deberían lanzar el JDK cada vez que actualicen el JRE).

Mi JAVA_HOME fue configurado correctamente. Confirmé haciendo "establecer JAVA_HOME". Apuntaba a mi directorio JDK y se deletreaba correctamente. Sin embargo, Ant afirmaba que no podía encontrar javac, pero pensó que JAVA_HOME estaba en mi directorio JRE.

Mi sistema funcionó bien antes de las últimas actualizaciones de Sun JRE7 (10 y 11). Ant es la versión 1.8.4


El punto y coma me estaba tirando: tenía JAVA_HOME establecido en "C: / jdk1.6.0_26;" en lugar de "C: / jdk1.6.0_26". ant.bat el punto y coma posterior después de seguir la sugerencia de Jon Skeet de examinar el archivo ant.bat . Esto es parte de ese archivo:

if "%JAVA_HOME%" == "" goto noJavaHome if not exist "%JAVA_HOME%/bin/java.exe" goto noJavaHome

Por lo tanto, el punto y coma no se estaba recortando al final, lo que provocaba que no se pudiera encontrar el archivo, por lo tanto, el valor predeterminado era "C: / Java / jre6" o algo así.

La parte confusa es que la página de HowtoBuild indica usar el punto y coma, pero eso parece romperla.


El trabajo rápido para el mismo es

Copie C: / Archivos de programa / Java / jdk1.6.0_14 / lib / tools.jar a C: / Archivos de programa / Java / jre6 / lib /

Esta excepción viene porque JAVA_HOME se configura como C: / Program Files / Java / jre6 y Ant no puede encontrar tools.jar en él.


En eclipse establece la configuración de JRE instalada en el JDK - en el proyecto (propiedades del proyecto -> Ruta de compilación de Java -> Bibliotecas), o por defecto global en las preferencias (Java -> JRE instalados). La configuración de eclispe es más fuerte que la variable del sistema.


Encontré el mismo problema cuando intento ejecutar Ant build usando el siguiente comando:

java -cp ant.jar:ant-launcher.jar org.apache.tools.ant.Main

La salida del comando es:

BUILD FAILED XXX/build.xml:8: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "/usr/lib/jvm/java-6-openjdk/jre"

Parece que el ejecutable de Java está eligiendo "/ usr / lib / jvm / java-6-openjdk / jre" como JAVA_HOME, a diferencia de "/ usr / lib / jvm / java-6-openjdk" donde está instalado JDK.

Resolví este problema configurando fork="yes" en mi tarea <javac> .

Eche un vistazo a: http://ant.apache.org/manual/Tasks/javac.html


Enfrenté este problema cuando construí mi proyecto con Jenkins. En primer lugar, no pudo encontrar ant.bat , que se corrigió agregando la ruta a ant.bat a la ruta de la variable de entorno del sistema. Entonces, la hormiga no pudo encontrar el directorio jdk. Esto se solucionó haciendo clic derecho en my computer > properties > advanced > environment variables y creando una nueva variable de entorno llamada JAVA_HOME y asignándole un valor de C:/Program Files/Java/jdk1.7.0_21 . No cree esta variable de entorno en Variables de usuario. Créelo solo bajo Variables del sistema.
En ambos casos, tuve que reiniciar el sistema.


Es común obtener este problema. No puedo establecer ningún hogar específico de Java en mi sistema ya que tengo 2 versiones diferentes de Java (Java 6 y Java 7) para diferentes entornos. Para resolver el problema, incluí la ruta JDK en la configuración de ejecución al abrir el archivo build.xml. De esta forma, 2 archivos de compilación diferentes usan 2 versiones diferentes de Java para compilación. Creo que podría haber una mejor solución a este problema, pero al menos el enfoque anterior evita establecer la variable JAVA_HOME.


Espero que conozca las variables de entorno del sistema y del usuario. Los usuarios son preferidos sobre el sistema. Si ha configurado su JAVA_HOME en las variables del sistema y si hay una entrada para el mismo en las variables de usuario, entonces obtendrá el último solo.

Haga clic derecho en Mi PC, vaya a propiedades, seleccione la pestaña Avanzado y haga clic en Variables ambientales para ver la lista de variables de entorno de usuario y sistema.


Estaba enfrentando el mismo problema, haciendo que la propiedad ejecutable en la etiqueta javac para establecerse en la ubicación de javac.exe resolviera el problema para mí. Esto resolvió el problema

<javac srcdir="${srcDir}" destdir="${buildDir}" fork="true" executable="C:/Program Files/Java/jdk1.7.0_03/bin/javac"/>


Establezca JAVA_HOME en las variables de entorno como D:/Program Files/IBM/SDP/jdk No proporcione ninguna D:/Program Files/IBM/SDP/jdk o punto y coma. Me funciona. Prueba la solución. De hecho, en ant.bat comprueba el JAVA_HOME adecuado en caso de que ant.bat no pueda encontrarlo, entonces JAVA_HOME señala el JRE predeterminado.


FYI, estoy usando Windows 7 y tuve que reiniciar Windows para que la nueva configuración JAVA_HOME surta efecto.


Me he encontrado con el problema similar. Quisiera enlazar para ejecutar la tarea Ant desde la versión Maven y obtuve el problema. Lo he arreglado como los siguientes pasos:

  • Asegúrese de que JAVA_HOME esté configurado correctamente. Puede verificarlo en Windowns en línea de comandos como: C:> echo% JAVA_HOME% El resultado sería similar a: C: / Progra ~ 1 / Java / jdk1.6.0_30 /
  • Copie el archivo tools.jar del directorio% JAVA_HOME% / lib a lib de Maven.

Y funcionó para mí.


Para resolver este problema, agregue el archivo tools.jar en window-> preferences-> ant-> runtime.


Si necesita ejecutar ant en eclipse con eclipse jdk incorporado, agregue la siguiente línea en build.xml

<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>


Si tiene JAVA_HOME configurado pero hay un error tipográfico en él, también verá la referencia falsa a una ruta jre6.


Simplemente configure la ruta JDK desde los pasos a continuación:

  1. Vaya a ''Ejecutar'' -> Herramientas externas -> Configuración de herramientas externas

  2. -> Seleccione ''JRE'' Luego, en la lista desplegable, seleccione el JDK disponible. ex. jdk1.8.0_25


También es posible que haya incluido / bin en su configuración JAVA_HOME, y Ant está agregando / bin a ella, por lo que no encontrará ningún exe. Me ha pasado a mí:}


También estaba enfrentando el mismo problema. Estoy usando Windows 7 y tenía instaladas dos versiones de Java. Primero, he instalado la última versión de java 7 y luego la versión 5.

Contenido de mi directorio de instalación de Java:

C:/Program Files/Java> jdk1.5.0_14 jdk1.7.0_17 jre1.5.0_14 jre7

y mi JAVA_HOME se estableció en el valor correcto, que era:

C:/>set ja JAVA_HOME=C:/Program Files/Java/jdk1.5.0_14

Pero aun así estaba teniendo el mismo problema:

XXXXXXX/build.xml:478: The following error occurred while executing this line: XXXXXXX/build.xml:477: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:/Program Files/Java/jre7"

Después de probar todas las sugerencias en este hilo, me di cuenta de mi error. Estaba intentando establecer la variable de entorno en "Variables de usuario" en lugar de la sección "Variables del sistema". Después de configurarlo en "Variables del sistema" funcionó bien. Estoy enfrentando otro problema sin embargo.

La versión predeterminada de java a la que apunta es todavía 7.

C:/>java -version java version "1.7.0_17" Java(TM) SE Runtime Environment (build 1.7.0_17-b02) Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode, sharing)

No estoy seguro de cómo hacer que apunte a la versión 5.


Yo tuve el mismo problema. Mi paquete JDK apuntado por JAVA_HOME no tenía ninguna herramienta.jar Asegúrese de que su instalación de JDK tenga tools.jar

(claramente el mensaje de error es confuso)


tuvo el mismo problema;

c:/jb/src/build.xml:191: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:/Program Files/Java/jre7" Total time: 0 seconds c:/jb/src>echo %JAVA_HOME% c:/Program Files/Java/jdk1.7.0_13

solución:

path = c:/ant/bin/;%PATH% path = c:/Program Files/Java/jdk1.7.0_17/bin;%PATH% set "JAVA_HOME=c:/Program Files/Java/jdk1.7.0_13"

Supongo que la instrucción jdk path solo lo haría, pero me da pereza descubrir que la solución anterior es a prueba de balas. :-)

También usando Windows7