java eclipse ant classnotfound

java - apache ant bin



clase javac1.8 no encontrada (10)

A veces, el problema al construir la guerra a través de ANT también está relacionado con la coincidencia de la versión java miss en los archivos build.properties, ya que build.XML intenta usar la versión java mencionada en la propiedad build.compiler

compruebe si la propiedad build.compiler es la misma que la versión java prevista.

He instalado dos jdks: jdk 1.5 y jdk 1.8. Tengo el siguiente archivo de configuración Ant build.xml:

<target name="compileCustomSrc"> <javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" > <classpath> <fileset dir="C:/lib/"> <include name="*.jar" /> </fileset> </classpath> </javac> </target>

Antes de instalar jdk1.8, Ant invocado desde Eclipse compiló todas las fuentes con éxito. Pero ahora, tengo un siguiente mensaje de error:

Class not found: javac1.8

Mi JAVA_HOME y JRE_HOME:

JAVA_HOME = C:/Program Files (x86)/Java/jdk1.5.0_16 JRE_HOME = C:/Program Files (x86)/Java/jre1.5.0_16

y establecer en Eclipse JRE en 1.5. ¿Configura Java 1.8 algunas configuraciones durante la instalación?


Actualice Ant a la versión 1.9.x como Java 8 en versiones incompatibles con Ant menos tha 1.9 o después de comand -Dbuild.compiler = javac1.7, vea lo siguiente:

lanzamiento de la hormiga -Dbuild.compiler = javac1.7


Actualización Ant a la versión 1.9.x como Java 8 en versiones incompatibles con Ant menos tha 1.9


Como seguimiento de la respuesta de Kristian Holdhus (marcado como correcto), en su lugar puede usar el atributo del compiler en la tarea Ant javac . La configuración del compiler="modern" debe ser tanto hacia atrás (tan atrás como 1.3) como hacia adelante compatible.

Esto evita la necesidad de establecer la propiedad del sistema Java llamada build.compiler . Solo a falta de establecer explícitamente el atributo del compiler en la tarea javac , Ant utilizará el valor de build.compiler como alternativa.


Intenté todas las otras soluciones, pero ninguna funcionó. Finalmente encontré un enfoque que funcionó para mí en Eclipse:

  • Haga clic derecho en el nombre de la tarea de la hormiga, por ejemplo, "compileCustomSrc" en la ventana de la ant .
  • Elija Run As | External Tool Configurations Run As | External Tool Configurations
  • Luego, en la pestaña JRE , elija Separate JRE: Java SE7 o lo que sea que se Separate JRE: Java SE7 su java 7, luego Separate JRE: Java SE7 Apply y luego Run .

¡Su tarea ant será ejecutada, y se compilará correctamente!


Lo intenté con Eclise y obtuve el mismo error. Clase no encontrada: javac1.8

Verifiqué la versión ANT en mi sistema

> ant -version

Apache Ant (TM) versión 1.9.6 compilada el 29 de junio de 2015

Cuando intenté ejecutar build.xml desde el símbolo del sistema, funcionó. Luego lo comprobé en el Eclipse, se refería a la versión anterior de ANT.

Simplemente edité la ruta ANT HOME en el Eclipse y funcionó desde aquí también. :)

A continuación se muestra la imagen desde donde se necesita editar la ruta ANT en el Eclipse.

  1. Haga clic derecho en el archivo build.xml
  2. Correr como
  3. Configuraciones de herramientas externas
  4. Seleccione la pestaña classpath

Ahora cambie la ruta de inicio de ANT desde aquí.


Tuve el mismo problema. Hice que JAVA_HOME y JRE_HOME se configuraran correctamente. También tuve Ant> 1.9.

Lo que hice para arreglarlo es ir a Eclipse a Window -> Preferences. Expande Ant y selecciona Runtime. De forma predeterminada, se debe seleccionar la pestaña Classpath y en el lado derecho hay un botón llamado "Ant Home". Haga clic en este botón y compruebe que esté apuntando a su carpeta Ant.



JAVA_HOME = C:/Program Files (x86)/Java/jdk1.5.0_16 JRE_HOME = C:/Program Files (x86)/Java/jre1.5.0_16

Su JAVA_HOME y JRE_HOME están configurados para la instalación de Java 1.5, por lo tanto, no se encuentran 1.8 binarios (como javac ). Configúrelos en la instalación de Java 1.8 y estará bien.


Class not found: javac1.8

Se sabe que este error ocurre con versiones de Apache Ant inferiores a 1.9.0, que no son compatibles con Java 8. Si está utilizando una versión de Ant <1.9.0, debe actualizar a una versión 1.9.x.

Aquí está el informe de error relacionado: https://issues.apache.org/bugzilla/show_bug.cgi?id=53347

Por cierto, si solo quieres compilar con Java 8, pero no necesitas compilar ninguna sintaxis real de Java 8, entonces puedes pasar el siguiente argumento a javac como una solución alternativa , lo que te permitiría continuar usando una versión anterior de Ant :

-Dbuild.compiler=javac1.7