web-dev-qa-db-de.com

UnsupportedClassVersionError nicht unterstützte major.minor-Version 51.0 kann die Klasse nicht laden

Mögliches Duplizieren:
Ausnahme im Thread "main" Java.lang.UnsupportedClassVersionError: a (Unsupporte d major.minor Version 51.0)

ich habe eine Webanwendung in Java mit jdk 1.7.0, Eclipse IDE (Indigo) entwickelt und führt diese Anwendung auf dem in Eclipse ide konfigurierten Tomcat (Apache-Tomcat-7.0.23) aus. 

Wenn ich versuchte, meine Anwendung über IDE auszuführen, läuft sie einwandfrei, aber als ich ihren Krieg erstellt und in den Apache-Deployment-Ordner (Webapps) abgelegt und von außerhalb der IDE ausgeführt habe, wird die Startseite erfolgreich geladen Wenn ich versuchte, eine Operation darüber auszuführen, gibt es einen Fehler

UnsupportedClassVersionError unsupported major.minor version 51.0 unable to load class bean.myclassname

ich habe die Java-Version außerhalb von jdk 1.7.0 überprüft. Außerdem wurde die Java_HOME-Umgebungsvariable auf C:\Programme\Java\jdk1.7.0_01 gesetzt.

31
Nishit Jain

Nun, vermutlich wird nicht dieselbe Version von Java verwendet, wenn es extern ausgeführt wird. Durchsuchen Sie die Startskripte sorgfältig, um herauszufinden, wo die Version von Java ausgeführt werden soll. Sie sollten auch die Startprotokolle überprüfen, um festzustellen, ob sie angeben, welche Version ausgeführt wird.

Alternativ können Sie Ihre Compiler-Einstellungen in Eclipse immer auf Ziel 1.6 ändern, es sei denn, Sie benötigen die Java 7-Funktionen.

34
Jon Skeet

Obwohl Ihr JDK in Eclipse 1.7 ist, müssen Sie sicherstellen, dass der Eclipse-Compilance-Level ebenfalls auf 1.7 eingestellt ist. Sie können die Compilance-Ebene überprüfen -> Fenster -> Voreinstellungen -> Java-Compiler - Compilance-Ebene.

Ein nicht unterstützter Major-Minor-Fehler tritt auf, wenn der Compilance-Level nicht mit der Laufzeit übereinstimmt.

16
kosa

Die Java_home-Umgebungsvariable sollte auf den Speicherort der richtigen Version des Java-Installationsverzeichnisses zeigen, sodass Tomcat mit der richtigen Version gestartet wird. Sie haben beispielsweise das Projekt mit Java 1.7 erstellt und müssen dann sicherstellen, dass die Java_HOME-Umgebungsvariable auf das Installationsverzeichnis von jdk 1.7 in Ihrem Computer verweist.

Ich hatte das gleiche Problem. Wenn ich den Krieg in Tomcat bereitstelle und ausführte, löst der Link den Fehler aus. Durch das Verweisen auf die Variable - Java_HOME auf jdk 1.7 wurde das Problem behoben, da meine Kriegsdatei in der Java 1.7-Umgebung erstellt wurde.

Versuchen Sie, der Eclipse.ini-Datei Folgendes hinzuzufügen:

-vm
C:\Program Files\Java\jdk1.7.0_01\bin\Java.exe

Möglicherweise müssen Sie auch die Dosgi.requiredJavaVersion in derselben Datei in 1.7 ändern.

0
Justin Buser