web-dev-qa-db-fra.com

Pourquoi Ant me donne-t-il une erreur de version majeure.minor non supportée?

Je cours cette cible dans Ant.

<target name="compile" depends="init"
    description="compile the source " >
    <!-- Compile the Java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
</target>

Cela me donne cette erreur.

 C:\Users\..\workspace\..\build.xml: 21: Java.lang.UnsupportedClassVersionError: 
 com/Sun/tools/javac/Main: Major.minor version 51.0 .__ non prise en charge.

Voici les versions:

Apache Ant(TM) version 1.8.2

JDK version is JDK 1.7.0

Voici mes paramètres de compilateur dans Eclipse.

enter image description here

S'il vous plaît aidez-moi à le résoudre.

43
coder

Le runtime jre a été défini sur jre 6 au lieu de jre 7 dans la fenêtre de configuration de construction.

27
coder

Vérifiez si tools.jar utilisé lors de la compilation est conforme au jeu JRE. Si vous utilisez Eclipse, vérifiez les versions comme suit:
Goto Window-> Preferences
- Vérifiez Ant Runtime en sélectionnant Runtime sous Ant dans le volet de gauche. Vérifiez l'onglet Global Entries sous Classpath. Vous pouvez voir la version dans le chemin du dossier.
- Dans le volet de gauche, vérifiez les JRE installés sous Java. Vérifiez la version.
J'avais également le même problème lorsque mon JRE sélectionné était 1.6.0_24 et que tools.jar dans Ant runtime provenait de jdk 1.7 Si les deux sont de versions différentes 1.6/1.7, corrigez-les en corrigeant leur chemin d'accès . En général, tools.jar est disponible à l'adresse suivante: C:\Program Files\Java\jdk1.xx\lib. De même, si nécessaire, ajoutez le JRE en le faisant pointer sur C:\Program Files\Java\jdk1.x.x \

35
abksrv
  1. Vérifiez si jdk est installé dans le chemin "C:\Program Files\Java" Si ce n’est pas le cas, installez le JDK sur votre ordinateur.

  2. Dans Eclipse, cliquez avec le bouton droit de la souris sur "build.xml", puis sélectionnez Exécuter en tant que> Configuration des outils externes

  3. Cliquez sur l'onglet "JRE" puis cliquez sur "JRE installés"> "AJOUTER"> "VM standard"> Cliquez sur "Suivant  

  4. Sélectionnez le répertoire "C:\Program Files\Java\jdk1.7.x_xx" et le répertoire sera ajouté à "jres installé"

  5. Sélectionnez le nouveau répertoire JDK et cliquez sur "OK"

  6. Cliquez sur "Séparer JRE" dans la liste déroulante et sélectionnez la version du JDK "jdk1.7.x_xx " et cliquez sur " Exécuter ".

Cela aiderait :)

16
SuperSaiyan

Vous devez indiquer quelle version de Ant et quelle version de JVM. 

Vous pouvez exécuter ant -v pour voir quels paramètres Ant utilise conformément au document

Ant 1.8 * requiert JDK 1.4 ou supérieur.

Le terme major.minor version 51.0 non pris en charge signifie qu'un code a été compilé pour une version du JDK et que vous essayez d'exécuter ces classes sous une version antérieure du JDK. (voir ici )

9
Nicolas Modrzyk

Une cause possible de ceci est un JRE incorrect sélectionné dans les options de construction Ant. Après avoir cliqué avec le bouton droit sur le fichier build.xml et choisi "Exécuter en tant que ..." puis "Génération Ant ...", assurez-vous que le bon JRE est choisi dans l'onglet JRE de la boîte de dialogue des options de configuration. Vous verrez une option 'Séparer JRE'; assurez-vous que le jdk approprié est sélectionné dans la liste déroulante avant de cliquer sur "Exécuter".

4
THX1137

Téléchargez la version JDK de JRE sur les JRE installés et utilisez-la à la place. 
Dans Eclipse Indigo, si vous vérifiez l'onglet Classpath sur la configuration d'exécution pour ant, vous verrez qu'il ajoute par défaut le fichier tools.jar du système. Par conséquent, si vous lancez Eclipse à l'aide de Java7 et exécutez une construction ant à l'aide d'un JRE6 distinct, une erreur UnsupportedClassVersionError est générée. Lorsque j'ai ajouté la version du JDK, Eclipse a récupéré le fichier tools.jar du JDK et ma tâche ant a été exécutée avec succès.

2
Aberdeen61

Je rencontre le même problème. Puis je suis allé dans Exécuter en tant que -> Ant build ...-> jre . J'ai trouvé que le jre utilisé est un JRE distinct qui est le JRE par défaut d'Eclipse (1.6) . JRE . Et changez l’emplacement du JRE Eclipse par défaut en mon jdk (1.7).

Le problème est résolu.

2
user3864221

J'aimerais ajouter mes résultats ici pour aider les autres, car s'ils sont pertinents, aucun de ceux-ci n'a résolu mon problème.
J'ai eu la situation unique où je suis passé d’atelier de weblogic 9.2 à Helios avec JDK6. Cependant, nos experts en sécurité nous ont poussés à JDK7, ce qui m'a forcée à aller chez Indigo. 

En fin de compte, j'ai utilisé sysinternals process Explorer pour rechercher si quelque chose utilisait actuellement le dossier JDK6 qui existait encore sur mon système. Bien sûr, c'était Eclipse. J'ai ouvert Eclipse.ini et la deuxième ligne faisait référence au JDK6, je l'ai remplacée par le répertoire JDK7, j'ai démarré Eclipse et la construction a réussi. 

1
user2275184

Si vous obtenez cette erreur parce que vous essayez délibérément de créer Java 6, mais que vous avez Java 7 ailleurs dans Eclipse, c'est peut-être parce que vous faites référence à un Java 7 tools.jar dans un environnement Java 6.

Vous devez installer le JDK 6 ( not JRE) et ajouter le JRE 6 tools.jar en tant qu'entrée d'utilisateur dans le chemin d'accès aux classes de la configuration de construction, répertorié au-dessus du JRE 7 tools.jar.

0
jevon

Dans mon cas, le projet était un Maven, j'avais JDK 1.8.0, Eclipse: Kepler et j'avais installé le plugin M2Eclipse de Eclipse Marketplace.

Changer le niveau du compilateur n'a pas aidé.

Enfin, j'ai utilisé la dernière version d'Eclipse (Luna), niveau de compilateur 1.7, le même plugin M2Eclipse et le problème a été résolu.

0
Itack

Il suffit simplement de vérifier votre temps d’exécution en accédant à la configuration et à la configuration d’antian, puis en remplaçant jre par jdk (si jdk 1.7, jre doit être 1.7). 

entrez la description de l'image ici

0
Venkatesh Kancheti

aller à l'option d'exécution ---> option d'outil externe de sélection ----> configuration d'outil externe --->. ---> sélectionnez votre JRE requis.

0