problem mit java -jar programm.jar

Status
Nicht offen für weitere Antworten.

jagdfalke

Bekanntes Mitglied
wenn ich das (siehe Titel) mit meinem Programm mache, kommt das hier in der Konsole:

Exception in thread "main" java.lang.UnsupportedClassVersionError: programm/Main (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
usw.

Wenn ihr noch wissen müsst, wie die Fehlermeldung weiter geht sagt bescheid, ist nur höllisch viel zu schreiben. Geht halt noch a bissl weiter mit "at java. ...".
Kann mir jemand sagen, was das bedeutet? Und am Besten noch wie ich es beheben kann? Ich habedas Program mit NetBeans geschrieben, vielleicht hilft das.

mfg
jagdfalke
 
kann eigentlich nicht sein, weil ein anderes (von hotscripts runtergeladenes jar-file) einwandfrei mit genau diesem Befehl funktioniert.
 
Das könnte vielleicht schon passieren. Nämlich wenn du mit Java 1.5 kompilierst und mit Java 1.4.x interpretierst.
Welche Java-Versionen sind auf deinem System installiert?
 
Entschuldigt wenn ich den Thread für meine Frage gleich mit Mißbrache, aber es passt dazu:

Inwiefern funktioniert es, Java-Code, der auf irgendeiner Version kompiliert wurde, in anderen Versionen auszuführen??

Wenn ich z.B. mit Java 5 ein Programm kompiliere, funktioniert das dann unter Java 1.4 (unter Vorraussetzung, dass keine Java 5 speziellen Funktionen verwendet werden)?

Wie siehts in der anderen Richtung aus? Funktioniert kompilierter Quelltext bei neueren JRE-Versionen immer?

Macht es einen Unterschied, ob ich javac oder ob ich z.b. den jikes zum kompilieren verwende?

Hoffentlich kann mich da mal einer aufklären ???:L
 
Ich habe einfach die Packete aus der Suse Linux 9.3 Distribution installiert. Dh die müssen alle von der gleichen Version sein.
Mir scheint das Problem hängt mehr mit meinem Programm zusammen als mit dem JRE, denn eine andere jar-datei, die mit dem selben netbeans erstellt wurde, funktioniert.
 
Das musst du beim javac Befehl explizit angeben, sonst gehts nicht!!

Im JBuilder kann man es bei den Optionen auswählen, aber ich glaub das ist der Paramater

-source oder -target (glaub aber -target)
 
Wenn ich z.B. mit Java 5 ein Programm kompiliere, funktioniert das dann unter Java 1.4 (unter Vorraussetzung, dass keine Java 5 speziellen Funktionen verwendet werden)?
Nur wenn du Glück hast, Java5 hat das .class-Format ganz leicht modifiziert, i.A. wird eine mit dem 1.5er jdk kompiliertes Programm nicht auf einer älteren JVM laufen [egal was als -target angegeben ist]

Wie siehts in der anderen Richtung aus? Funktioniert kompilierter Quelltext bei neueren JRE-Versionen immer?
Das sollte immer funktionieren, wenn nicht wärs ein echter Bug den du an Sun schicken musst/sollst

Macht es einen Unterschied, ob ich javac oder ob ich z.b. den jikes zum kompilieren verwende?
ja, kann der jikes überhaupt schon java5??


wenn du sowas öfters hast, dann würde ich dir raten, die alte 1.4er parallel auf deinem System zu installieren (so dass du bei bedarf eine saubere Übersetzung für die 1.4er machen kannst)
 
Bleiglanz hat gesagt.:
ja, kann der jikes überhaupt schon java5??

Danke für deine Antworten! Java 5 kann Jikes nicht (zumindestens kann er mit for(test:argv) nix anfangen), aber er nutzt bei mir im classpath nur die packages vom Java 5 JDK - und das funktioniert bisher ohne Probleme!
 
Tjo, wenn sich das Programm aufregt hat das jetzt nicht wirklich was mit dem Compiler zum tun!


Es kann schon sein, dass das Programm/IDE dich gar net kompilieren lässt, obwohls eigentlich gehn würde, aber für die IDE selber gehts halt nicht...
 
also: java -version ergibt:
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
Java Hotspot (TM) Client VM (build 1.4.2_08-b03, mixed mode)


was ist bitte "Java Hotspot" ?
 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03).
Dieser Auszug bezieht sich auf die JRE, also den Interpreter.
Wenn du jetzt außer dieser Version bspw. auch noch das JDK 1.5 installiert hast und damit deine Programme entwickelst bzw. kompilierst, kann der von dir beschriebene Fehler auftreten.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben