# Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number



## senay (20. Juli 2007)

Hallo an Alle,

ich habe vor kurzem in Java5 umgestiegen und habe dementsprechend in eclipse : windows->Prefrences->Java->Compiler->Compilnece level: 5.0 

und in tomcat: 
windows->Prefrences->Tomcat->JVM Einstellungen->JRE: jre1.5.0_12

geändert.

Beim Compilieren der source code bekomme ich jedoch die Fehlermeldung:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file

Dieser Fehler würde dann angezeigt werden, wenn man versucht, eine Klasse laufen zu lassen, die mit neuerer Version von JDK kompiliert wird. 	
Z.B. wenn die Klasse mit JDK 5.0 kompiliert wird aber versucht, auf JDK 1.4.2 zu laufen. 

Kann mir bitte jemand helfen? Muß ich noch eventuell zusätzliche Veränderungen im Tools vornehmen, weil ich von Java6 runter auf Java5 gegangen bin?

danke im voraus


----------



## Anime-Otaku (20. Juli 2007)

Hast du auch das JDK/JRE 5  in eclipse eingebunden?

windows preferences java installed jres und hier den standard auf das 5er ändern


----------



## senay (20. Juli 2007)

Ja, ich habe den jre1.5.0_12 als Standard gewählt bei Windows->Preferences->Java->Installed JRE s.

Trotzdem funktioniert es beim Compilieren nicht.

Irgendeine Kleinigkeit habe ich wahrscheinlich übersehen.


----------



## zerix (20. Juli 2007)

Hallo,

du musst natürlich auch den Compiler in eclipse umstellen. Den findest du auch bei den Preferences -> Java.

MFG

zEriX


----------



## Anime-Otaku (20. Juli 2007)

Du musst, wenn du im Projekt nicht das Standard JRE nimmst es dort auch ändern in den Projekteinstellungen


----------



## senay (20. Juli 2007)

Hallo
der compiler ist auch umgestellt:

windows->Prefrences->Java->Compiler->Compilnece level: 5.0 

Daran liegt es anscheinend auch nicht.


----------



## senay (20. Juli 2007)

Ich habe jre1.5.0_12 als Standard gewählt für alle Projekte und auch die library JRE System Library [jre1.5.0_12] eingefügt.


----------



## terravotion (20. Juli 2007)

Versuch mal das Projekt neu zu builden: Project -> Clean
Es liegt daran, dass Eclipse die Files fortlaufend kompiliert...

Bei mir funktioniert das so immer


----------



## senay (20. Juli 2007)

Ich habe das Projekt neu gebildet mit den gleichen libraries und Tools ...aber der gleicher Fehler wird angezeigt...


----------



## terravotion (20. Juli 2007)

Steht da nicht auch noch irgendwo in welcher Klasse das Problem aufgetreten ist? Denn das "main" führt diese ich sag ma andere Klasse nur aus?


----------



## senay (20. Juli 2007)

Die gesamte Fehlermeldung sieht wie folgt aus:


Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
	at java.lang.Class.getDeclaredMethod(Unknown Source)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JavaBeansLauncher.main(JavaBeansLauncher.java:74)


----------



## terravotion (20. Juli 2007)

Mag ne dumme Frage sein, aber hast du das JDK6 ausm "Build Path" genommen? Ich habe bei mir gerade gesehen, dass ich mehrere JREs im Projekt habe.
Das 1.5 und das 6... aber das 1.5 ist gar nicht "real" verfügbar (nicht installiert), sondern ich kanns anwählen weils Projektbedingt so eingestellt ist.

Versuch doch einfach mal dein Projekt nicht mir eclipse zu kompilieren sondern über die Kommandozeile.


----------



## senay (20. Juli 2007)

Ich habe es versucht durch das Befahl:

prompt>Klassennamen

in der Kommandozeile zu compilieren. Aber als ergebnis wird immer nur der namde der Java-Klasse ausgegeben.


----------



## terravotion (20. Juli 2007)

mit prompt geht das nicht. versuchs stattdessen mit folgendem Befehl:

```
javac namederklasse.java
```
Du musst aber vorher in den Ordner der Klasse navigieren um es mit obigem Befehl versuchen.


----------



## senay (20. Juli 2007)

ja ich habe es gemacht...jetzt kann ich wenigstens genau sehen, wo die Fehler sind...aber die hören nicht auf....


----------



## senay (20. Juli 2007)

Die Klassen, die imn library sind, werden nicht anerkannt. Ich habe alles auch noch im selben Verzeichnis auch kopiert und eingefügt, aber trotzdem erkennt er die Klasse in library nicht an.


----------



## marcelz (14. August 2007)

Hallo,

ich weiß nicht ob ich noch weiter helfen kann, will aber trotzdem meinen Senf dazu geben.

Ich kann leider kein Java 6 benutzen, weil das Projekt damit nicht läuft, also zurück zu Java 5. Habe die unten angegebenen Schritte durch geführt.


In der Eclpse bin ich wie folgt vor gegangen:

1. mein JDK eingestellt

Window ->Java->Installed JREs

2. den Compiler auf meine ausgewählte JRE eingestellt

Window ->Java->Compiler

Danach funktionierte es 

Gruß

Marcel


----------

