.jar ---> Fehler beim packen

So, und hier komme ich schon zu meinem nächsten Problem:

Ich habe mein Programm compiliert, und nun will ich es als ausführbare .jar Datei packen.

Mein Manifest setzt sich aus einem

 Main-Class: Kampf_v0_1.class
[Leerzeile]



zusammen.

wenn ich nun


jar cmf manifest Kampf.jar Kampf_v0_1.class

ins Terminal eingebe, verläuft dies Problemlos, und vor meiner Nase erscheint Kampf.jar.

Wenn ich dies aber nun per

 java -jar Kampf.jar

ausführen möchte, bekomme ich folgenden Fehler:

heinz@keks:~/Java-Projekte$ java -jar Kampf.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: Kampf_v0_01/class
Caused by: java.lang.ClassNotFoundException: Kampf_v0_01.class
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Kampf_v0_01.class. Program will exit.

Das komische ist aber, wenn ein Freund von mir die .jar erstellt, funktioniert es tadellos…

Wüsste jemand die Lösung meines Problems? :frowning:

Bei den komplizierten Dateinamen kann man schon mal durcheinander kommen. :wink:

Gepackt hast du: Kampf_v0_1.class
Gesuchte Klasse ist: Kampf_v0_01.class

Guck mal mit einem Packprogramm in deine Jar-Datei und sieh nach, was wirklich drin ist. Sieht so aus, als ob die Kampf_v0_01.class noch fehlen würde.

Aber bei Main-Class muss man das .class doch weglassen, oder nicht?

Ja. Na klar stimmt. :o
In der Manifestdatei muss die Main-Class ohne .class angegeben werden.

Ho, es hat gestimmt, hab .class weggelassen und es geht :smiley:

Komisch ich hatte oft gelesen das man .class anhängt, manchmal nicht…boah…dass hasse ich am Internet. Man weiß fast nie welche Lösung die Richtige ist :twisted:

Danke euch beiden :smiley:

Wo kann ich denn hier das Thema auf „Gelöst“ setzten? :confused:

Auf den Button „Problem ungelöst“ klicken :wink: