# eclipse projekt ohne eclipse ausführen?



## dermoritz (13. Jun 2008)

ich bastle seid einer weile an einem java programm, soweit so gut. nur wie führe ich es ohne eclipse aus? ich hab z.b. versucht es als .jar zu exportieren.
es kommt aber immer:"Exception in thread "main" java.lang.NoClassDefFoundError:<pfad zur jar datei>
Caused by: java.lang.ClassNotFoundException:"

kann mir bitte jemand erklären wie ich die jar datei korrekt erzeugen kann (am liebsten direkt mit eclipse)? und wie man sie dann ausführt.

danke im voraus

edit hab ich vergessen am ende der fehlermeldung:
"
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)
"

sorry ich glaub das hier passt besser zu den anfängerfragen - könnte es ein admin bitte verschiebn?


----------



## Gelöschtes Mitglied 5909 (13. Jun 2008)

du musst die main class angeben 
kann man beim exportieren mit eclipse direkt machen
oder
manifest bearbeiten (gugg mal in die faqs)


----------



## dermoritz (13. Jun 2008)

die main class hab ich angegeben, habs mehrmals probiert. es wir auch automatisch dir korekte main class vorgeschlagen wenn man sie wählt.

die selbe fehlermeldung kommt übrigens wenn man versucht die .class datei auszuführen.

woran kanns noch liegen?


----------



## musiKk (13. Jun 2008)

Zunaechst: Fuehrst du die Datei auch korrekt mit _java -jar deindateiname.jar_ aus?

Ansonsten: Oeffne das jar-Archiv mal (ist gezippt) und schau im Ordner META-INF, was in der manifest-Datei steht.


----------



## Gelöschtes Mitglied 5909 (13. Jun 2008)

> die selbe fehlermeldung kommt übrigens wenn man versucht die .class datei auszuführen.



hast du libs verwendet? sind diese vorhanden? order nur in eclipse geadded?


----------



## dermoritz (13. Jun 2008)

ich hab libs in eclipse als "external jar" importiert bzw. eingebunden. beim exportieren als jar wurden diese auch mit ausgewählt.


----------



## Wildcard (13. Jun 2008)

jar in jar geht aber nicht. Du musst dafür sorgen, das der Pfad zu deinen libs im Manifest steht.


----------



## dermoritz (13. Jun 2008)

ich da kommen wir der sache langsam näher. als java noob hab ich leider bis jetzt kaum was von "manifest" gehört. hab aber bei jar datei export diesbezüglich was in eclipse gesehen.

also in meinem fall benötige ich jdom.jar und jmatio.jar. weiß jemand wie das speziell bei eclipse funktioniert?


----------



## Wildcard (13. Jun 2008)

Eclipse kann dir eine Basis Manifest.mf erstellen und im Workspace speichern (die libs kann es nicht eintragen, da Eclipse nicht weiß, wo die Libs später liegen sollen).
In dieses Manifest trägst du dann deinen Class-Path ein.
Zur Syntax schau einfach bei SUN vorbei.


----------



## dermoritz (16. Jun 2008)

also ich hab eclipse mal eine manifest datei ersdtellen lassen und als name "manifest.txt" angegeben. dann hab ich dieser eine zeile mit den classpathes hinzugefügt, nun sieht sie so aus:

Manifest-Version: 1.0
Main-Class: ect.main.Ect
Class-Path: lib/jamtio.jar lib/jdom.jar


(am ende ist ein leerzeile)

aber der fehler ist der gleiche geblieben, es hat sich nix geändert. :-( noch irgendwelche ideen was ich machen könnte?


edit: ich hab das ganze mal mit dem jsmooth exe-wrapper compiliert, dort kann man auch die einzubindenden .jar-dateien angeben. damit funktioniert es einwandfrei.

mich würde denoch interessieren wieso es mit "java meins.jar" nicht funktioniert.


----------



## Wildcard (16. Jun 2008)

dermoritz hat gesagt.:
			
		

> mich würde denoch interessieren wieso es mit "java meins.jar" nicht funktioniert.


java *-jar* meins.jar


----------



## Guest (16. Jun 2008)

Versuchs mal mit java -jar meins.jar

Ansonsten gibt es auch ein plugin namens fatjar für Eclipse das einem die ganze arbeit abnimmt


----------



## dermoritz (16. Jun 2008)

so also das beste was ich bisher erreicht hab:
"Failed to load Main-Class manifest attribute from
E:\eclipse\work space\Equivalence_Class_Test\ect.jar"

dann hab ich nochmal die jar datei inkl. manifest aus eclipse exportiert die class path geschichte eingefügt und nun kommt wieder der fehler vom anfang :-(.

ich probier mal fatjar (obwohl einmal würd ich es gern "alleine" hinkriegen)

edit: der fehler von oben kommt wahrscheinlich daher, dass ich vergessen hab beim jar export die main class zu wählen. das hilft bei dem problem natürlich nicht weiter.

übrigens mit fatjar funzt es


----------



## FArt (16. Jun 2008)

:bahnhof: 

Gib dem Trottel ein Gewehr und er schießt sich ins Bein... :autsch:
Gib dem Anfänger Eclipse und er sucht den Knopf für "do what i mean"

Nur als Tipp: Packaging, JARs, Manifestdatei, Klassenpfad, das steht alles hier -> http://java.sun.com/docs/books/tutorial/deployment/jar/

Und wie immer: java -jar impliziert immer, dass die Manifestdatei ausgewertet wird und somit sinnvolle Werte enthalten muss. -cp hat dann z.B. keinen Effekt.

Fatjar ist die "egal wie, hauptsache es geht" Krücke, die das Problem an sich nicht löst.

Vielleicht ist es ja auch der Pfad mit einem Leerzeichen, der Probleme macht...


----------



## dermoritz (16. Jun 2008)

danke fart,

genau darum gehts mir ja hier, ich will verstehen wies ohne eclipse läuft und wenn ich das hab kann ich immernoch fatjar oder jsmooth benutzen.

ich werd mir die geschichte mal durchlesen und den hinweis mit den leerzeichen auch in betracht ziehen.


----------

