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
, elijaSeparate JRE: Java SE7
o lo que sea que seSeparate JRE: Java SE7
su java 7, luegoSeparate JRE: Java SE7
Apply
y luegoRun
.
¡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.
- Haga clic derecho en el archivo build.xml
- Correr como
- Configuraciones de herramientas externas
- 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.
puede descargar y descomprimir ANT 1.10 en su sistema e intentar convertir el ANT home en eclipse para su proyecto en 1.10. Debería funcionar. Lee esto para más detalles. http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html
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