UnsupportedClassVersionError

Status
Nicht offen für weitere Antworten.

MichiM

Bekanntes Mitglied
Hallo,

weiß jemand auf Anhieb was mit dieser Fehlermeldung anzufangen und vor allem, wie man den Fehler behebt?

java.lang.UnsupportedClassVersionError: StromkreisApplet (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(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 sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


Hab unter:

http://www.java.de/forum/message/26678/

u.a. auf eine ähnliche Frage schon den Hinweis

Hi, das Programm wurde mit der -target 1.4 Option übersetzt, d. h. es läuft nur mit einer JRE Version größer oder gleich 1.4. Beim Einsatz von JRE Version 1.3 oder älter bekommst Du die von Dir erwähnte Fehlermeldung.

entdeckt.

Ich hab mit JRE 1.5 kompiliert. Wenn ich mit 1.4 starte, krieg ich den Fehler...
Hab allerdings nirgends eine Option "-target " gefunden, auch nicht beim Absuchen der Dateien im eclipse (verwende Version 3.2). Ich würde meine Projekte gern so kompilieren, dass sie mit möglichst allen Versionen laufen, also wenigstens mit der 1.4er noch, die wahrscheinlich immer noch bei den meisten läuft. ;) Wie bekommt man das hin?

Gruß Michi
 

byte

Top Contributor
Ich hab mit JRE 1.5 kompiliert. Wenn ich mit 1.4 starte, krieg ich den Fehler...

Und genau da liegt der Fehler! Du kannst keine mit 1.5 kompilierten Programme mit 1.4 starten. Wenn Du zu 1.4 kompatibel sein willst, dann musst Du mit 1.4 kompilieren. Dann kannst Du sicher sein, dass es auch unter 1.5 läuft.
 

Kola

Aktives Mitglied
Eclipse:

Window->Preferences->Java->Compiler

Da kannst du die Einstellungen vornehmen
 

MichiM

Bekanntes Mitglied
So ganz hauts nicht hin. Hab jetzt schon sonstwas probiert in der eclipse-Umgebung...

x mal gebuildet, die .class-Dateien gelöscht, Build-Optionen überprüft (worauf ja auch nochmal kompiliert wurde), aber am Ende krieg ich immer entweder die Meldung

Laden: Klasse StromkreisApplet.class nicht gefunden
oder den genannten UnsupportedClassVersionError... Ich habe dazu die Version 1.4.2 unter "Installed JREs" ausgewählt. Muss ich noch irgendwo noch separat einstellen, dass mit dieser Version auch ausgeführt werden soll?

Was ich feststelle: Der eclipse merkt nicht so recht, wann er die .class-Dateien neu erstellen muss. Ich hab zwar gewählt, dass er immer builden soll, wenn nötig, aber wenn ich ausführe und irgendeine nötige .class existiert nicht (weil ich sie manuell gelöscht hab - soll man wohl nicht? :? :wink: ), dann bringt er eben:

Laden: Klasse StromkreisApplet.class nicht gefunden
,

statt einfach mal zu versuchen, sie zu erstellen. Wenn ich das dann auf Umwegen irgendwie veranlasse (irgendwo in den Preferences was temporär umstellen, sodass er sich gezwungen fühlt, alles neu zu kompilieren und anschließend wieder zurückstellen), hab ich zwar alle nötigen .class-Dateien, aber die Version passt ihm nicht. Versteh ich nicht. Er verwendet ja auch die 1.4.2er, steht ja direkt über der Konsole:

<terminated>...\Java\j2re1.4.2_12\bin\javaw.exe

Wie krieg ich es nun hin, dass das Projekt einfach mal komplett mit 1.4 kompiliert und gestartet wird? :D
Stell ich auf die 1.5er um, wird kompiliert und erfolgreich gestartet. Probier ich es mit der 1.4, geht nichts. Irgendwo außer in den .class-Dateien müsste also noch vermerkt sein, dass da die 1.5er schon aktiv war?
 

byte

Top Contributor
Du brauchst in Eclipse nie Class Files per Hand zu löschen. Prüfe zunächst, ob eine 1.4 JRE in Eclipse existiert (Installed JREs). Dann einfach beim entsprechenden Projekt das JRE wechseln. Danach kompiliert Eclipse das Projekt automatisch neu mit der neuen (alten) JRE. Es reicht NICHT, nur den Compiler Level auf 1.4 zu stellen.

Falls das alles nicht funktioniert, dann mach ein neues Projekt und kompiere die Java-Files da rein. Pass dabei aber auf, dass Du nicht die .classpath Datei mitkopierst. Denn wahrscheinlich ist die dann fehlerhaft bei dir.
 

MichiM

Bekanntes Mitglied
Unter "Installed JREs" hab ich die 1.4.2_12 und die 1.5.0_07 eingetragen. Ausgewählt ist nun die 1.4er.
"Project" -> "Clean" ... -> "Build Project" führt noch nicht zum Ziel. Irgendwo in den Projekteinstellungen, wie Du sagst, oder ganz in der Nähe muss da noch ein Punkt versteckt sein, wo ich die 1.4er wohl auch noch auswählen muss, aber ich find diesen Punkt nicht... Der dort zu findende Build Path weist zumindest schon mal auf "JRE System Library [j2re1.4.2_12]". Hm.
 

MichiM

Bekanntes Mitglied
Ok, hab das Projekt im eclipse mal entfernt und neu angelegt. Beim Neu-anlegen konnte ich dann auch die Version usw. wählen und nun geht zumindest das mal. Allerdings muss ich schon sagen, das ich die ganze Verwaltung im eclipse als ziemliches Gewurschtel empfinde. Erst hat er sich schon beschwert, weil ihm da eine .java-Datei im Verzeichnis fehlte, die gar nicht zum Projekt gehörte. Hab ich nie eingegliedert. Deshalb wollte er auf einmal nicht mehr kompilieren. Ein Theater... Projekt also neu angelegt und das geht nun.

Allerdings gleich nächstes Problem: Ich hatte zuerst bei der Installation der 1.4er die Browser-Plugins nicht mitinstalliert, sodass ich im Browser nicht zwischen der 1.4 und der 1.5 wählen konnte. Da ich nun keinen Schimmer hatte, wie man die ohne Neuinstallation nachinstallieren könnte, hab ich die 1.4er einfach mal schnell deinstalliert und neu installiert. Bei der Neuinstallation hieß es "Java VM läuft schon, muss erst beendet werden." Hab ich gemacht und losinstalliert. Läuft zwar nun alles auch, aber - nun erscheint das Plugin-Symbol nicht mehr, wenn ich ein Applet starte, weder im Firefox noch im IE.

http://www.java.com/de/download/help/javaconsole.xml

Anzeigen der Java-Konsole für den Browser

Internet Explorer

1. Klicken Sie auf der Menüleiste des Browsers auf Extras.
2. Wählen Sie Sun Java-Konsole aus.


Mozilla und Netscape 7.1

1. Klicken Sie auf der Menüleiste des Browsers auf Extras.
2. Wählen Sie Web-Entwicklung --> Java-Konsole aus.

So einen Eintrag "Sun Java-Konsole" gibts in meinem Firefox unter "Extras" gar nicht.

Was ist da jetzt wieder schiefgelaufen? :lol:

Im Ordner bin von der 1.5er Version fand ich dann javacpl, mit dem ich die Konsole zwar wieder herbrachte, aber im Ordner der 1.4er gibts das nicht... Ich kann nun also im Browser nur mit der 1.4er testen, nicht aber mit der 1.4er, die ich gerne unterstützen würde. Was tun?
 

thE_29

Top Contributor
@byto: Glaube schon das es auch ohne 1.4er JVM geht, weil man Dinge auch mit -target 1.1 für die MSJVM kompilieren kann und ich habe sicher kein 1.1 oben ^^
 

byte

Top Contributor
Hab erst kürzlich feststellen müssen, dass es nicht geht. Zumindest mit SE5 Compiler Level 1.4 kompiliert und dann auf 1.4er JRE ausgeführt => Unsupported Major Minor...
 

thE_29

Top Contributor
Aha...

Naja, ich kompiliere ja meistens nur mit 1.4.2..

Selten mache ich (beruflich) 1.5 Apps!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben