Eigenständige Jar-Datei Problem Eclipse

Ich habe ein Java Projekt mit Eclipse erstellt.
Es enthält 4 Klassen, und jede enthält eine „public static void main“… Struktur.
Ich habe verschiedene Java packages im Quellcode importiert.
Wenn ich das Programm aus Eclipse heraus ausführe funktioniert alles wunderbar.
Sobald ich jedoch eine „Runnable Jar“ erstellt habe, und die jar Datei per Doppelklick öffne funktioniert alles. Auf jedem anderen PC allerdings kommt, dass die Main Klasse GUI nicht gefunden wurde.
Die Main Klasse ist aber im Manifest notiert.
Außerdem wenn ich die Datei per Kommandozeile mit „java Test.jar“ aufrufe kommt wieder die Meldung „Could not find main class“.
Wenn ich jedoch die Datei mit „java -jar Test.java“ öffne, funktioniert alles wunderbar!
Weiß jemand von euch, was ich machen muss?

Ich verwende Java 1.7 und Windows7 sowie das neueste Eclipse zum kompilieren.

Vielen Dank!
hydro

Hi,

hier helfen dir am besten die Oracle Tutorials:

http://www.oracle.com/technetwork/java/compile-13665…

mfg

Hatte das Problem bereits in einigen Foren gelesen.
Es wird vermutet, dass es an der Java Version liegt. Installiere eine aktuellere und es sollte funktionieren.

siehe Link: (w w w .computing.net/answers/programming/running-java-apps-on-windows-7/20335.html#6)

Hoffe das führt zum gewünschten Erfolg!

Nun, auf meinem Computer habe ich Java 1.7, heißt das, ich müsste auf den PCs auf denen ich das Programm habe auch Java 1.7 haben?
Und kann ich diesen Fehler umgehen, wenn ich das Programm in Java 1.x also einer niedriegeren Version schreibe?

Vielen Dank für deinen Tipp!

Hej,

die Frage ist schon etwas älter und hat sich vielleicht inzwischen erledigt - ist mir nur gerade vorgeschlagen worden, und ich hätte noch ein paar Anmerkungen dazu.

Generell ist Java Bytecode aufwärtskompatibel, d.h. eine 1.7 VM kann bspw. für 1.6 erzeugten Bytecode ausführen, aber nicht umgekehrt. In der Regel äußert sich das durch eine solche Fehlermeldung beim Start:

[user@machine ~]$ .local/bin/jdk-6/jre/bin/java Test 
Exception in thread "main" java.lang.UnsupportedClassVersionError:
Test : Unsupported major.minor version 51.0
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
...
Could not find the main class: Test. Program will exit.

Hier wurde versucht, für 1.7 kompilierten Bytecode auf einer 1.6 VM auszuführen. Die Annahme, daß das beschriebene Problem an der Java Version liegt, ist also naheliegend.

Es muß auf der Zielmaschine eine Java VM vorhanden sein, deren Version mindestens der entspricht, mit der der Bytecode erzeugt (also der Sourcecode kompiliert) wurde.

Alternativ kennt javac die Optionen -source und -target, über die man Quellcode- und Bytecode-Kompatibilität in gewissen Grenzen steuern kann. In Eclipse läßt sich das in den Projekteigenschaften (Java Compiler) oder global festlegen.

Viele Grüße,
Karsten