web-dev-qa-db-fra.com

Exécuter Ant sur Eclipse Mars avec Java 1.6

J'ai téléchargé la dernière version d'Eclipse (Mars) et modifié la version Java requise en 1.6 dans le fichier Eclipse.ini car mon projet utilise Java 1.6.

J'ai configuré les JRE installés dans Eclipse pour utiliser Java 1.6 . Mais lorsque j'essaie d'exécuter ma cible ant, cela crée une erreur: 

La version JRE inférieure à 1.7 n'est pas prise en charge.

Existe-t-il une solution de contournement pour utiliser Java 1.6 dans la version Mars, car je ne parviens pas à mettre à niveau vers Java 1.7 pour le moment?

20

J'ai rencontré le même problème après la mise à niveau vers Eclipse Mars.

J'ai résolu ce problème en modifiant l'environnement d'exécution de la configuration de l'outil externe du projet en JDK7.

Je suppose que vous savez comment ajouter JDK7 à votre jre installé dans Eclipse

Ouvrez les configurations des outils externes ... puis changez le JRE en JDK 1.7

Open External Tools Configurations

Puis changez le JRE

Change JRE

Mais cela créera un autre problème, le fichier jar compilé sera dans JDK 7 et cela ne fonctionnera pas sur les serveurs de production avec JDK6. 

Pour résoudre ce problème, il vous suffit de modifier l'attribut cible de la tâche en 1.6.

<javac target = "1.6">

Change Task target to 1.6

Selon les suggestions de @dag et @Chris, voici la tâche mise à jour et javac.enter image description here

20
Amr ElAdawy

Nous avons résolu le problème en utilisant un plugin Ant patché . Pour Eclipse Neon, voir aussi ce lien comme indiqué dans les commentaires de la première page.

6
rjahn

jetez un oeil à la <javac>reference https://ant.Apache.org/manual/Tasks/javac.html#compilervalues ​​ et ajoutez les attributs suivants à votre <javac>- Task: compiler="javac1.6"source="1.6"target="1.6"executable="[path-to-jdk-1.6/bin/javac]"fork="true"taskname="javac1.6"

5
Chris

Non, vous ne pouvez pas utiliser JDK1.6 ou moins car Eclipse Mars ne fonctionne qu'avec Java> = 1,7 . Reportez-vous this link.

2
Badal

Le langage Java que vous utilisez pour exécuter Eclipse ne doit pas nécessairement être identique à celui que vous utilisez pour vos projets. Vous devez exécuter Eclipse Mars avec Java 7 (ou 8), mais vous pouvez utiliser Java 6 pour vos projets.

Parlez de Java 6 à Eclipse dans les préférences de 'Java> JRE installés' et définissez-le comme paramètre par défaut (ou sélectionnez-le dans des projets individuels).

2
greg-449

Eclipse Oxygen fonctionne sous JRE 1.8, mais quelques anciens projets 1.7 et jdk1.7.0_40 sont installés en tant que JRE distinct et configurés dans la configuration externe des outils, mais l'erreur "jre inférieur à 1,8 n'est pas prise en charge".

Ce qui a été résolu pour moi, c’est la mise à jour directe de la configuration de build xml, en particulier si vous avez un autre projet qui fonctionne et que vous pouvez copier.

Plus précisément, je suis allé aux configurations de lancement à:

workspace/.metadata/.plugins/org.Eclipse.debug.core/.launches

Et édité le fichier ...build.xml.launch approprié en remplaçant:

<booleanAttribute key="org.Eclipse.ant.ui.DEFAULT_VM_INSTALL" value="true"/>
<stringAttribute key="org.Eclipse.jdt.launching.JRE_CONTAINER" value="org.Eclipse.jdt.launching.JRE_CONTAINER/org.Eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_40"/>

Avec:

<booleanAttribute key="org.Eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
<stringAttribute key="org.Eclipse.jdt.launching.VM_INSTALL_NAME" value="jdk1.7.0_40"/>
<stringAttribute key="org.Eclipse.jdt.launching.VM_INSTALL_TYPE_ID" value="org.Eclipse.jdt.internal.debug.ui.launcher.StandardVMType"/>

Et redémarré Eclipse pour le ramasser.

Aucune idée si cela avance ou recule en termes de support Eclipse, mais cela a résolu mon problème.

0
Barney

J'ai récemment rencontré ce problème avec Java 8 sur ma machine, en utilisant Elicpse Oxygen et en essayant d'utiliser Ant pour générer un projet Java 6. J'ai utilisé certaines des suggestions ci-dessus, mais j'ai également rencontré un comportement étrange au cours du processus de construction de Ant. En fin de compte cela a fonctionné, voici mes étapes:

1) La maison Java a fini par rester dirigée vers Java 8. 

2) Définissez dans le script Ant les valeurs suggérées par @Chris.

3) Ne changez pas le fichier Ant Runtime JRE, le mien a été laissé à 8 et ne lancera en fait pas la compilation Ant si je le modifiais en 6.

4) Le chemin de génération des paramètres du projet et les niveaux du compilateur ont tous été définis sur 6.

5) Exécutez la construction.

Cela produit une construction au niveau Java 6 qui a fonctionné pour moi.

0
Adam