J'ai besoin de compiler un fichier jar avec 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é de régler:
<target name="compile">
<javac compiler="javac1.5" target="1.5" srcdir=.../>
</target>
J'ai aussi enlevé
<property name="build.compiler" value="modern"/>
et il n'y a pas de fichier de propriétés. J'exécute Java 1.6 sous Linux/SUSE
Il existe également un moyen simple de déterminer quelle version de Java est attendue dans le fichier jar.
Utilisez l'attribut "cible" et supprimez l'attribut "compilateur". Voir ici . Donc, cela devrait ressembler à ceci:
<target name="compile">
<javac target="1.5" srcdir=.../>
</target>
J'espère que cela t'aides
La source et la cible doivent être spécifiées. Je recommande de fournir ant defaults , de cette manière, vous n'avez pas besoin de spécifier d'attribut source/target pour chaque tâche javac:
<property name="ant.build.javac.source" value="1.5"/>
<property name="ant.build.javac.target" value="1.5"/>
Voir Notes de compilation croisée Java pour plus d'informations.
Pour trouver la version de Java dans les fichiers de classe que j'ai utilisés:
javap -verbose <classname>
qui annonce la version au début comme
minor version: 0
major version: 49
ce qui correspond à Java 1.5
Vous pouvez également définir la propriété {{ant.build.javac.target=1.5}}
Ant pour mettre à jour la version cible par défaut de la tâche. Voir http://ant.Apache.org/manual/javacprops.html#target