webentwicklung-frage-antwort-db.com.de

Ausnahme beim Kompilieren: falsche Version 50.0, sollte 49.0 sein

Ich arbeite an einer Anwendung mit JXL API, und als ich versucht habe, Eclipse IDE zu kompilieren, funktioniert es einwandfrei und das Gleiche funktioniert nicht, wenn ich versuche, in der Eingabeaufforderung zu kompilieren und die folgende Ausnahme zu zeigen.

Extract.Java:6: cannot access jxl.read.biff.BiffException bad class file: C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext\jxl.jar(jxl/read/biff/BiffException.class)
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
import jxl.read.biff.BiffException;
                     ^
1 error

BEARBEITEN:

Ich kann mit JDK 1.6 ausführen. Da JDK 1.6 auch mit niedrigeren Versionen kompatibel sein muss, unterstützt es nicht die Klassendateien, die in JDK 1.5 kompiliert wurden.

38
i2ijeya

Die von Ihnen verwendete Bibliothek wurde mit Java 6 kompiliert

Ihr Compiler ist Java 5 und versteht dieses Format daher nicht.

Um dies zu beheben, müssen Sie eine 1.5-Version der Bibliothek erwerben oder Ihren Compiler auf 1.6 aktualisieren.

68
OscarRyz

Per http://www.jnode.org/node/2140 ...

Eingereicht von Stephen Crawley am Fri, 30.11.2007 - 07:15 .

Ich vermute, dass Sie Code mischen, der mit verschiedenen Java-Versionen kompiliert wurde. Die Klassendatei-Version 50.0 wird von Java 6.0 und 49.0 von Java 5.0 ..__ verwendet.

Versuchen Sie es mit einem "sauberen Build", um alle vorhandenen Klassendateien zu entfernen, gefolgt von einem regulären Build .

JNode wird nur mit Java 6.0 entwickelt. Beim letzten Versuch habe ich nicht mit Java 5.0 (aka 1.5) erstellt. (Es ist ein Problem mit dem Programm, das das JNode-Boot-Image erstellt.)

Versuchen Sie, den Builder in Eclipse zu ändern. Wenn Sie 3.4 verwenden, ist dies Project - Properties - Java Compiler - Aktivieren Sie die projektspezifischen Einstellungen - Compiler-Compliance-Level = 1.6. Sie müssen auch JRE 1.6 installiert haben.

3
atk

Überprüfen Sie den Klassenpfad in Eclipse und stellen Sie sicher, dass derselbe Klassenpfad mit dem Befehl in der Eingabeaufforderung kompiliert wird. Überprüfen Sie auch den Import Ihrer Bibliothek

1
JERiv

Das bedeutet, dass Sie diese Klasse mit Java 6 kompiliert haben und versuchen, sie mit Java 5 auszuführen.

Lösung:  

Wenn Sie ant verwenden, führen Sie die folgenden Schritte im Projektstammverzeichnis aus

  1. ameise sauber
  2. am bereitstellen

Wenn Sie Eclipse verwenden, reinigen Sie einfach den Arbeitsbereich mit (Entfernen Sie die mit Java6 kompilierten Klassendateien) Und erstellen Sie sie erneut

das könnte sein, dass in Ihnen IDE Sie auf die neueste Version von JDK verweisen, aber wenn Sie Ihr Programm außerhalb der IDE erstellen (vielleicht mit maven), ist Ihr Java_home die ältere Version der auf Ihrer IDE. 

0
Luthoz