Eclipse wird nicht kompiliert, schlechte Klassendatei, falsche Version

7

Ich versuche Code zu kompilieren, der von einem anderen Entwickler aus SVN ausgecheckt wurde. Eclipse hat mir in letzter Zeit viel Ärger gemacht.

Hier sind meine projektspezifischen Einstellungen:

Dies ist der Kompilierungsabschnitt meiner Ameisen-Datei:

%Vor%

Wenn ich kompiliere (mit Ant) bekomme ich eine Fehlermeldung:

%Vor%

Was bedeutet dieser Fehler?

    
jeph perro 21.08.2010, 00:22
quelle

9 Antworten

13

Die Klassendateiversion von 49.0 gehört zu Java 1.5.x, die der 48.0 zu einer der Java 1.4.x-Versionen. Die Klassendateistruktur hat sich in 1.5 geändert, aufgrund der Einführung einiger neuer Funktionen und Änderungen, die in der Java-Sprachspezifikation vorgenommen wurden.

Aus dem Fehler kann abgeleitet werden, dass eine Java 1.4-Klassendatei erwartet wurde, während eine Java 1.5-Klassendatei gefunden wurde. Es scheint, dass der Compiler ein Java 1.4-Compiler ist. Sie sollten also versuchen zu überprüfen, ob Sie die richtige Version des Java-Compilers und auch das richtige JDK (d. H. JDK home) verwenden.

ANHANG

Ant sucht in der Datei $ JAVA_HOME / bin / javac nach der ausführbaren Datei javac. Wenn die JAVA_HOME-Umgebungsvariable falsch festgelegt wurde, z. B. zu einem Java 1.4-Home, ist es wahrscheinlich, dass der beschriebene Fehler auch in Eclipse auftritt.

ANHANG # 2

Das Hinzufügen von Einträgen zu der PATH-Umgebungsvariablen könnte dazu führen, dass das Suchklassenpfadverhalten von Ant geändert wird, was möglicherweise dazu führt, dass eine andere tools.jar zum Kompilieren der Quellen verwendet wird. Dies kann darauf zurückzuführen sein, dass jvm.dll von der JRE 1.4.2-Installation zur Ausführung von Eclipse (und damit Ant) verwendet wird.

    
Vineet Reynolds 21.08.2010, 00:31
quelle
3
  

Falsche Klassendatei: C: \ Programme \ Java \ jre1.6.0_07 \ lib \ rt.jar (java / io / IOException.class)
  Klassendatei hat falsche Version 49.0, sollte 48.0

sein

Es ist anzumerken, dass die erwähnte Klassendatei mit einem Compiler kompiliert wurde, der Klassendateien der Version 49.0 erzeugt, während ant erwartet, dass er mit einem Compiler kompiliert wird, der Klassendateien der Version 48.0 generiert. Da die fragliche Klasse Teil der JRE ist, müssen Sie den Klassenpfad in Ihrem build.xml aktualisieren, um die JRE mit Klassendateien der Version 48.0 einzubeziehen.

    
BalusC 21.08.2010 00:29
quelle
3

Zunächst einmal haben Ihre Projekteinstellungen nichts mit Ihrem Build-Skript zu tun. In den Projekteinstellungen erfahren Sie, wie Eclipse Ihr Projekt erstellt und nicht, wie Ihre Ant-Datei ausgeführt wird.

Um herauszufinden, unter welcher jvm ant läuft, klicken Sie mit der rechten Maustaste auf Ihr Build-Skript in Eclipse und wählen Sie "Ausführen als ...". Im Popup-Dialog navigieren Sie zur Registerkarte jvm und prüfen Sie, mit welcher jre Ihr Skript ausgeführt wird.

    
spbfox 24.08.2010 05:42
quelle
2

Sie scheinen Ant mit einem Java-Compiler der Version 1.5 zu betreiben, kompilieren aber gegen die Klassenbibliotheken (rt.jar) einer 1.6-Installation. Sie sollten Ihre build.xml so einrichten, dass sie beide (den Compiler und die Klassenbibliotheken) der gleichen Java-Version konsistent verwendet.

    
x4u 21.08.2010 00:30
quelle
2

Die Fehlermeldung bedeutet, dass das Compiler-Tool in tool.jar, das Ihre Ant verwendet, eine ältere Version hat als die Klasse, die es zu kompilieren versucht. Die Nachricht "[javac] class file hat die falsche Version 50.0 sollte 49.0 sein" würde bedeuten, dass Ihre Klassendatei jdk 6.0 benötigt, aber Ihre tool.jar von jdk 5.0 kommt. Um zur richtigen tools.jar in Eclipse zu wechseln, öffne Window & gt; Einstellungen & gt; Ant & gt; Runtime & gt; Globale Einträge.

    
Viatcheslav Turkin 14.04.2012 16:50
quelle
1

Sie können versuchen, tools.jar von jdk/jre nach common/lib von tomcat zu kopieren.

Es hat für mich funktioniert, wie hier

    
PAco 04.04.2011 16:30
quelle
0

Vielleicht müssen Sie JDK JRE verwenden, das sich unter C: \ Programme \ Java \ jdk \ jre, nicht öffentlich

befindet     
Yuri.Bulkin 24.08.2010 11:08
quelle
0

Sie müssen die Java-Version für ANT auch ändern, denn wenn Sie Ihre Laufzeitumgebung als JDK1.8 verwenden, sollte Ihr ANT auch auf dieselbe Version zeigen oder Ant sollte die tools.jar-Datei von JDK1.8 / lib beziehen /tools.jar Standort. Um dieses Problem zu beheben, gehe ich zu Eclipse Go to Window - & gt; Präferenz - & gt; Ant - & gt; Runtime - & gt; Globale Einträge. Hier überprüfen und aktualisieren Sie den tools.jar Pfad mit der neuesten Version wie folgt: C: \ Programme \ Java \ jdk1.8.0_60 \ lib \ tools.jar

Dann wird das Build-Script-Problem gelöst. :)

    
Amit Thakur 15.09.2015 10:56
quelle
0

Das Ändern der tools.jar in Eclipse auf die korrekte Version hat es behoben. Ich benutzte jre 1.6 und musste es ändern, um 1.8 zu verwenden, um die Klassendatei in Version 52 zu erhalten.

    
Arvind 19.01.2016 18:14
quelle

Tags und Links