Réglage de la version cible de Java en javac ant
Question
J'ai besoin de compiler un fichier jar en utilisant Ant (1.7.0) pour fonctionner sous une version spécifique de Java (1.5). J'ai actuellement Java 1.6 sur ma machine. J'ai essayé paramètre:
<target name="compile">
<javac compiler="javac1.5" target="1.5" srcdir=.../>
</target>
J'ai enlevé
<property name="build.compiler" value="modern"/>
et il n'y a pas de fichier de propriétés. Je suis en cours d'exécution Java 1.6 sur Linux / SUSE
Aussi est-il un moyen simple de déterminer quelle version de Java est attendue dans le fichier jar.
Autres conseils
La source et la cible doivent être spécifiés. Je recommande la fourniture par défaut fourmi , de cette façon vous n'avez pas besoin de spécifier la source / cible attribut pour chaque tâche javac:
<property name="ant.build.javac.source" value="1.5"/>
<property name="ant.build.javac.target" value="1.5"/>
Voir Java notes de cross-compilation pour plus d'informations.
Pour la version de Java dans les classfiles j'ai utilisé:
javap -verbose <classname>
qui annonce la version au début comme
minor version: 0
major version: 49
qui correspond à Java 1.5
Vous pouvez également définir la propriété ant {{ant.build.javac.target=1.5}}
de mettre à jour la version cible par défaut de la tâche.
Voir http://ant.apache.org/manual/javacprops.html#target