java - apache ant windows




clase javac1.8 no encontrada (7)

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?


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.


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


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!


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.



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




classnotfound