Establecer la versión de destino de Java en ant javac
(4)
Necesito compilar un archivo jar usando ant (1.7.0) para ejecutar bajo una versión específica de Java (1.5). Actualmente tengo Java 1.6 en mi máquina. He intentado configurar:
<target name="compile">
<javac compiler="javac1.5" target="1.5" srcdir=.../>
</target>
También he eliminado
<property name="build.compiler" value="modern"/>
y no hay archivo de propiedades. Estoy ejecutando Java 1.6 en Linux / SUSE
También hay una forma simple de determinar qué versión de Java se espera en el archivo jar.
Para encontrar la versión de java en los archivos de clase que utilicé:
javap -verbose <classname>
que anuncia la versión al inicio como
minor version: 0
major version: 49
que corresponde a Java 1.5
También puede configurar {{ant.build.javac.target=1.5}}
propiedad de ant para actualizar la versión de destino predeterminada de la tarea. Ver http://ant.apache.org/manual/javacprops.html#target
Tanto la fuente como el objetivo deben especificarse. Recomiendo proporcionar los valores predeterminados de las hormigas , de esa manera no es necesario especificar el atributo de origen / destino para cada tarea de javac:
<property name="ant.build.javac.source" value="1.5"/>
<property name="ant.build.javac.target" value="1.5"/>
Consulte las notas de compilación cruzada de Java para obtener más información.
Use el atributo "objetivo" y elimine el atributo ''compilador''. Mira here . Entonces debería ser algo como esto:
<target name="compile">
<javac target="1.5" srcdir=.../>
</target>
Espero que esto ayude