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.
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.
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.
Ü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
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
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.