webentwicklung-frage-antwort-db.com.de

Warum gibt Ant einen nicht unterstützten Major.Minor-Versionsfehler an

Ich führe dieses Ziel in Ant aus.

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

Es gibt mir diesen Fehler.

 C:\Benutzer\..\workspace\..\build.xml: 21: Java.lang.UnsupportedClassVersionError: 
 de/Sun/tools/javac/Main: Nicht unterstützte Hauptversion, Minor 51.0 

Hier sind die Versionen:

Apache Ant(TM) version 1.8.2

JDK version is JDK 1.7.0

Hier sind meine Compiler-Einstellungen in Eclipse.

enter image description here

Bitte hilf mir, es zu lösen.

43
coder

Die Laufzeit-JRE wurde im Build-Konfigurationsfenster auf JRE 6 statt JRE 7 gesetzt.

27
coder

Prüfen Sie, ob die während des Kompilierens verwendete tools.jar mit dem JRE-Satz übereinstimmt. Wenn Sie sich bei Eclipse befinden, überprüfen Sie die Versionen folgendermaßen:
Gehe zu Fenster-> Einstellungen
- Überprüfen Sie Ant Runtime, indem Sie im linken Bereich unter Ant die Option Runtime auswählen. Überprüfen Sie die globalen Einträge auf der Registerkarte Classpath. Sie können die Version im Ordnerpfad sehen.
- Überprüfen Sie im linken Bereich installierte JREs unter Java. Überprüfe die Version.
Das gleiche Problem hatte ich auch, als meine ausgewählte JRE 1.6.0_24 war und tools.jar in Ant Runtime von jdk 1.7 kam. Wenn beide Versionen aus unterschiedlichen Versionen 1.6/1.7 stammen, korrigieren Sie sie durch Korrektur Ihr Pfad . In der Regel befindet sich tools.jar unter: C:\Programme\Java\jdk1.xx\lib. Fügen Sie bei Bedarf die JRE hinzu, indem Sie auf C:\Programme\Java\jdk1.x.x\verweisen.

35
abksrv
  1. Prüfen Sie, ob Sie jdk im Pfad "C:\Programme\Java" installiert haben. Wenn nicht, installieren Sie das JDK auf Ihrem Computer

  2. Klicken Sie in Eclipse mit der rechten Maustaste auf "build.xml", und wählen Sie Ausführen als> Konfiguration externer Tools aus.

  3. Klicken Sie auf die Registerkarte "JRE" und dann auf "Installierte JREs"> "ADD"> "Standard VM"> Klicken Sie auf "Next  

  4. Wählen Sie das Verzeichnis "C:\Programme\Java\jdk1.7.x_xx" aus, und das Verzeichnis wird den "installierten jres" hinzugefügt.

  5. Wählen Sie das neue JDK-Verzeichnis aus und klicken Sie auf "OK"

  6. Klicken Sie auf "Separate JRE" und wählen Sie die JDK-Version "jdk1.7.x_xx " aus und klicken Sie auf " Run ".

Das würde helfen :)

16
SuperSaiyan

Sie müssten angeben, welche Version von Ant und welche JVM-Version.

Sie können ant -v ausführen, um zu sehen, welche Einstellungen Ant verwendet gemäß dem Dokument

Ant 1.8 * benötigt JDK 1.4 oder höher.

Die 'Nicht unterstützte major.minor-Version 51.0' bedeutet, dass irgendwo Code für eine Version des JDK kompiliert wurde und Sie versuchen, diese Klassen unter einer älteren Version des JDK auszuführen. (siehe hier )

9
Nicolas Modrzyk

Eine mögliche Ursache hierfür ist eine falsche JRE, die in den Ant-Build-Optionen ausgewählt wurde. Nachdem Sie mit der rechten Maustaste auf die Datei build.xml geklickt und "Ausführen als ..." und dann "Ant Build ..." ausgewählt haben, stellen Sie sicher, dass im Dialogfeld "Konfigurationsoptionen" unter "JRE-Registerkarte" die richtige JRE ausgewählt ist. Sie sehen die Option 'Separate JRE'. Vergewissern Sie sich, dass die entsprechende Jdk ausgewählt ist, bevor Sie auf "Ausführen" klicken.

4
THX1137

Laden Sie die JDK-Version der JRE auf die installierten JREs herunter und verwenden Sie diese stattdessen. 
Wenn Sie in Eclipse Indigo die Registerkarte classpath in der Ausführungskonfiguration für ant aktivieren, wird standardmäßig das Hinzufügen der tools.jar aus dem System angezeigt. Wenn Sie also Eclipse mit Java7 starten und ein Ant-Build mit einer separaten JRE6 ausführen, wird ein UnsupportedClassVersionError generiert. Als ich die JDK-Version hinzufügte, holte Eclipse die tools.jar vom JDK ab und meine Ant-Task wurde erfolgreich ausgeführt.

2
Aberdeen61

Ich stoße auf das gleiche Problem. Dann ging ich in Run als -> Ant build ...-> jre . Ich fand, dass die verwendete Jre eine separate JRE ist JREs . Und ändern Sie den Speicherort der Standard-Eclipse-JRE in meine Jdk (1.7).

Das Problem ist gelöst.

2
user3864221

Ich möchte meine Ergebnisse hier hinzufügen, um anderen zu helfen, da sie zwar relevant sind, aber keines dieser Probleme mein Problem gelöst hat.
Ich hatte die einzigartige Situation, als ich mit JDK6 vom Workshop für Weblogic 9.2 zu Helios ging. Unsere Sicherheitsexperten haben uns jedoch zu JDK7 gedrängt, was meine Hand zwang, zu Indigo zu gehen. 

Am Ende benutzte ich den sysinternals process Explorer, um herauszufinden, ob momentan der JDK6-Ordner verwendet wurde, der noch auf meinem System vorhanden war. Sicher genug war es Eclipse. Ich öffnete Eclipse.ini und die zweite Zeile verwies auf JDK6, ich ersetzte dies durch das JDK7-Verzeichnis, startete Eclipse und der Build war erfolgreich. 

1
user2275184

Wenn Sie diese Fehlermeldung erhalten, weil Sie absichtlich versuchen, Java 6 zu erstellen, Java 7 jedoch an anderer Stelle in Eclipse installiert ist, liegt dies möglicherweise daran, dass Sie in einer Java 6-Umgebung auf Java 7 tools.jar verweisen.

Sie müssen das JDK 6 ( not JRE) installieren und den JRE 6 tools.jar als Benutzereintrag im Klassenpfad der Build-Konfiguration hinzufügen, der über dem JRE 7 tools.jar aufgeführt ist.

0
jevon

In meinem Fall war das Projekt ein Maven, ich hatte JDK 1.8.0, Eclipse: Kepler, und ich habe das M2Eclipse-Plugin von Eclipse Marketplace installiert.

Das Ändern des Compilers hat nicht geholfen.

Schließlich verwendete ich die neueste Version von Eclipse (Luna), Compiler-Ebene 1.7, das gleiche M2Eclipse-Plugin, und das Problem wurde gelöst.

0
Itack

Überprüfen Sie einfach Ihre Laufzeit, indem Sie zur Ant-Build-Konfiguration gehen und die JRE-Datei in JDK ändern (wenn JDK 1.7 dann JRE 1.7 sein sollte). 

Bildbeschreibung hier eingeben

0

gehen Sie zur Ausführungsoption ---> wählen Sie die Option für externes Werkzeug aus ----> Konfiguration für das externe Werkzeug ---> Wählen Sie ant build ----> wählen Sie Ihre build.xml aus ---> Wählen Sie Ihre gewünschte JRE aus.