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.

Était-ce utile?

La solution

Utiliser l'attribut « cible » et supprimer l'attribut « compilateur ». Voir . Donc, il devrait aller quelque chose comme ceci:

<target name="compile">
  <javac target="1.5" srcdir=.../>
</target>

Hope this helps

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top