J'utilise Ant 1.7.0 et j'ai installé Java 1.6, qui est dans Java_HOME.
Je veux construire un projet en utilisant Java 1.5, j'ai donc exporté Java_HOME comme répertoire Java 1.5.
Java -version
dit "1,5". Quand j'exécute Ant, il utilise Java 1.6.
Je viens d'avoir ce problème, c'est parce que j'avais d'abord ajouté le fichier de construction à ant-view lorsque le JRE par défaut était 1.6.
Il n'y avait pas de JRE spécifique au projet et j'ai changé la valeur par défaut à 1.5, même Eclipse fonctionnait dans la version 1.5, et Java_HOME était également à la version 1.5. L'exécution de la cible ant à partir de la ligne de commande utilisait JRE 1.5, mais Eclipse utilisait toujours 1.6.
Je devais cliquer avec le bouton droit sur la cible ant, sélectionner Exécuter en tant que ... et modifier le JRE sous l'onglet JRE. Ce paramètre est mémorisé pour les exécutions suivantes.
Dans Eclipse:
Faites un clic droit sur votre build.xml
cliquez sur "Exécuter en tant que", cliquez sur "Configurations d'outils externes ..."
Sélectionnez l'onglet JRE . Sélectionnez le JRE que vous utilisez.
Relancez la tâche, ça devrait aller maintenant.
Vous pouvez utiliser les propriétés cible et source sur la balise javac pour définir un environnement d'exécution cible. L'exemple ci-dessous compilera tout code source afin de cibler la version 1.4 sur tout compilateur prenant en charge la version 1.4 ou ultérieure.
<javac compiler="classic" taskname="javac" includeAntRuntime="no" fork=" deprecation="true" target="1.4" source="1.4" srcdir="${src}" destdir="${classes}">
Remarque: 'srcdir' et 'destdir' sont des valeurs de propriété définies ailleurs, dans le script de construction, par exemple. <property name="classes" value="c:/classes" />
Exécutez ant en mode verbose: ant -v
et cherche des indices.
Vous pouvez y parvenir en suivant les étapes ci-dessous, si vous utilisez Eclipse IDE:
Faites un clic droit sur la tâche dans votre fichier de construction ant (build.xml
).
Passez la souris sur "Exécuter en tant que", cliquez sur "Configurations d'outils externes ...".
Ajouter les éléments suivants aux "arguments":
-Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
Vous pouvez également spécifier dans une tâche javac le niveau de compatibilité (1.4, 1.5, 1.6) que vous souhaitez utiliser, vous pouvez définir les valeurs de niveau "source" et "cible". Consultez la documentation ici: Documentation de la tâche Javac
C'est une question plutôt ancienne, mais je vais ajouter mes notes pour des références futures.
J'avais un problème similaire et je l'ai corrigé en modifiant l'ordre des exportations dans la variable PATH.
Par exemple, j'utilisais une méthode de concaténation de chaînes sur mon PATH (ce n'est qu'un exemple):
$> export PATH='$PATH:'$Java_HOME
Si ma variable PATH contenait déjà un Java, la dernière valeur n'aurait aucun sens, donc l'ordre importerait. Pour résoudre ce problème, j'ai commencé à l'inverser en ajoutant d'abord ma variable, puis en ajoutant le PATH .
Suite à cette idée, j'ai inversé l'ordre dans lequel ANT_HOME était exporté. Ajout de Java_HOME avant ANT_HOME.
Cela pourrait être juste une coïncidence, mais cela a fonctionné pour moi.
Fichier de construction:
<target name="print-version">
<echo>Java/JVM version: ${ant.Java.version}</echo>
<echo>Java/JVM detail version: ${Java.version}</echo>
</target>
Sortie:
[echo] Java/JVM version: 1.5
[echo] Java/JVM detail version: 1.5.0_08
Si vous n'utilisez pas Eclipse. Ensuite, vous pouvez modifier la propriété ant Java directement sur le fichier, comme indiqué ici.
http://pissedoff-techie.blogspot.in/2014/09/ant-picks-up-incorrect-Java-version.html
Définissez votre Java_HOME
variable d’environnement avec la version Java requise (dans votre cas Java 1,5)), puis dans build.xml
utilisation executable="${Java_HOME}/bin/javac"
à l'intérieur <javac></javac>
tag.
exemple:
<target name="Java compiler" description="Compiles the Java code">
<javac executable="${Java_HOME}/bin/javac" srcdir="./src"
destdir="${build.dir}/classes">
</javac>
</target>
Utilisez les 2 propriétés suivantes pour la balise javac
:
fork="yes"
executable="full-path-to-the-javac-you-want-to-use".
L'explication des propriétés peut être trouvée ici
Si vous exécutez Ant à partir d’Eclipse, Eclipse utilisera jdk ou jre qui est configuré dans le chemin de classe (chemin de construction).
Par défaut, Ant considérera le JRE comme la version du JRE de l’espace de travail. Vous devez changer selon la version requise en suivant les instructions ci-dessous.
Dans Eclipse:
Faites un clic droit sur votre build.xml, cliquez sur "Exécuter en tant que", puis sur "Configurations d'outils externes ...", sélectionnez l'onglet JRE.
Sélectionnez le JRE que vous utilisez.
Relancez la tâche, ça devrait aller maintenant.
Selon la documentation Ant , définissez la variable d’environnement JAVACMD
sur le chemin complet de Java.exe
de la version de JRE dans laquelle vous souhaitez exécuter Ant.