Ant utilise une version java incorrecte

J’utilise Ant 1.7.0 et 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 pour devenir mon répertoire java 1.5.

java -version 

dit “1.5”. Lorsque je lance Ant, il utilise Java 1.6.

Juste eu ce problème, cela s’est produit parce que j’avais d’abord ajouté le fichier de construction à la vue ant lorsque la JRE par défaut était 1.6.

Il n’y avait pas de JRE spécifique au projet et j’ai modifié la valeur par défaut à 1.5, même eclipse était en 1.5 et JAVA_HOME à 1.5. L’exécution de la cible ant à partir de la ligne de commande utilisait JRE 1.5, mais dans l’éclipse, elle était toujours utilisée 1.6.

J’ai dû 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.

Selon le manuel ant , le paramètre JAVA_HOME devrait fonctionner – êtes-vous sûr que le paramètre modifié est visible pour ant?

Vous pouvez également utiliser la variable JAVACMD.

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 comstackra tout code source pour cibler la version 1.4 sur tout compilateur prenant en charge la version 1.4 ou ultérieure.

  

Remarque: Les “srcdir” et “destdir” sont des valeurs de propriété définies ailleurs dans le script de génération, par exemple

Exécutez ant en mode verbose: ant -v et recherche des indices.

Vous pouvez réaliser cela avec les étapes suivantes, si vous utilisez Eclipse IDE:

  1. Faites un clic droit sur la tâche dans votre fichier de compilation ant ( build.xml ).

  2. Passez la souris sur “Exécuter en tant que”, cliquez sur “Configurations d’outils externes …”.

  3. Ajouter les suivants à “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 les documents ici: Documentation des tâches Javac

C’est plutôt une vieille question, mais je vais append mes notes pour de futures références.

J’ai eu un problème similaire et corrigé en modifiant l’ordre des exportations dans la variable PATH.

Par exemple, j’utilisais une méthode de concaténation de chaînes de caractères avec PATH en faisant (c’est juste un exemple):

 $> export PATH='$PATH:'$JAVA_HOME 

Si ma variable PATH contenait déjà un java, la dernière valeur n’aurait pas de sens, donc l’ordre importerait. Pour résoudre ce problème, j’ai commencé par l’inverser en ajoutant d’abord ma variable, puis en ajoutant le PATH.

Suite à cette idée, j’ai inversé l’ordre d’exportation de ANT_HOME. Ajout de JAVA_HOME avant ANT_HOME.

Cela pourrait être juste une coïncidence, mais cela a fonctionné pour moi.

Fichier de construction:

  Java/JVM version: ${ant.java.version} Java/JVM detail version: ${java.version}  

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

Si vous exécutez Ant depuis eclipse, l’éclipse utilisera jdk ou jre configuré dans le chemin de classe (chemin de compilation).

Utilisez les 2 propriétés suivantes pour la balise javac :

 fork="yes" executable="full-path-to-the-javac-you-want-to-use". 

Vous trouverez l’explication des propriétés ici

Selon la documentation Ant , définissez la variable d’environnement JAVACMD pour qu’elle complète le chemin d’access à java.exe de la version JRE sur laquelle vous voulez exécuter Ant.

Par défaut, Ant considérera l’environnement JRE comme la version JRE de l’espace de travail. Vous devez changer en fonction de votre version requirejse en suivant les instructions ci-dessous.

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.

Définissez votre variable d’environnement JAVA_HOME avec la version Java requirejse (dans votre cas, java 1.5), puis dans build.xml utilisez executable="${JAVA_HOME}/bin/javac" dans la .

Exemple: