jar File startet nicht

fischmir

Grünschnabel
Hallöchen,

nach vielem suchen und lesen, habe ich immernoch keine Antwort auf meine Frage bekommen...hoffentlich kann mir jemand von euch weiterhelfen.

Ich habe mit Fat-Jar aus eclipse heraus eine Jar-File erstellt. FatJar legt diese Datei standardmäßig in meinen Projektordner. Mein Projektordner hat ohn die jar-File eine Größe von 2,57 MB (incl libraries).

Die erzeugte jar-File hat ine grüße von 1,5 MB. Starte ich nun (!) AUS MEINEM PROJEKTORDNER (!) die jar-File, startet mein Programm einwandfrei.

Nehme ich die file hier heraus und lege sie beispielsweise auf das (!) DESKTOP (!) und versuche sie von dort aus zu starten, bleibt das ganze leider ohne Erfolg.

Ich dachte das das gerade der Sinn einer jar wäre. Alle Dateien in eine einzige Datei rein, die ich dann u.a. auch starten kann.

Habe ich einen Fehler gemacht oder habe ich den Sinn eines jar-Archives nicht verstanden?
 
Ich wuerde sagen du hast einen Fehler gemacht ;) was hast du den bei Classpath angegeben als du das jar mit FatJar erzeugt hast?
 
Hi fischmir,

du müsstest das FatJar in den classpath eintragen, damit dein Jar dieses nutzen kann.
Mit dem Classpath setzt du den Pfad zu deinen zu benutzenden klassen. Es langt allerdings nicht einfach den Pfad zu dem Jar einzubinden. Bei einem Jar-file musst du explizit das .jar im classpath erwähnen.

Es funktioniert in deinem projekt ordner, weil das .jar welches du benötigst dort auch liegt.
Du kannst das .jar auch in deinem jar einbinden und während der laufzeit darauf verweisen.
Thomas Darimont hat hierzu eine interessante Sache im Forum gepostet.

Edit: hier der Link: http://www.tutorials.de/tutorials208053.html&highlight=Jar
hoffe das hilft dir.
Gruss,

Torsten
 
Zuletzt bearbeitet:
Hey Thorsten,

nur das wir uns richtig verstehen: Fat-jar ist ein eclipse-plugin und keine jar die ich gebrauche...

Ich habe mir den Thread mal angeschaut, aber es ist (würde ich sagen) nicht das was ich suche.
Die Verweise auf die jar-Archive die ich gebrauche, habe ich doch bereits in der Manifest-Datei hinterlegt...Was soll ich denn dann noch in den Classpath eintragen?

Meine Manifest:
Code:
Manifest-Version: 1.0
Main-Class: BabelfischSWT
Class-Path: lib/swt.jar lib/swt-pi.jar lib/jaxen-core.jar lib/jaxen-jdom.jar lib/saxpath.jar lib/jdom.jar
 
Hi Fischmir,

sorry, hab das erst nicht so ganz gerafft gehabt ;)

Wusste gar nicht das es so ein export tool gibt. Sowas hab ich nämlich auch schon (naja nicht ganz intensiv) gesucht.

Was für eine Fehlermeldung erscheint denn?
Oder startet es einfach nicht?
 
hmm, es sollte auch ohne Classpath gehen ich hab das mal ausprobiert, aber wieso schreibst du dir selber eine Manifest datei? Das macht FatJar fuer dich, vielleicht liegt es ja schon daran? ansonsten alle benoetigten Jar's mit in dein Jar aufnehmen
 
Ich habe die generierte *.jar von Fat-Jar mit Winrar mal wieder entpacken lassen und dabei erkannt, das FatJar nicht meine Ordnerstruktur übernimmt...aber gut. Folgendes ist die MANIFEST.MF Datei die FatJar mir generiert hat:

Code:
Manifest-Version: 1.0
Created-By: Fat Jar Eclipse Plug-In
Main-Class: BabelfischSWT



Name: org/jdom/
Specification-Title: JDOM Classes
Specification-Version: 1.0
Specification-Vendor: jdom.org
Implementation-Title: org.jdom
Implementation-Version: 1.0
Implementation-Vendor: jdom.org

Name: org/jdom/input/
Specification-Title: JDOM Input Classes
Specification-Version: 1.0
Specification-Vendor: jdom.org
Implementation-Title: org.jdom.input
Implementation-Version: 1.0
Implementation-Vendor: jdom.org

Name: org/jdom/output/
Specification-Title: JDOM Output Classes
Specification-Version: 1.0
Specification-Vendor: jdom.org
Implementation-Title: org.jdom.output
Implementation-Version: 1.0
Implementation-Vendor: jdom.org

Name: org/jdom/adapters/
Specification-Title: JDOM Adapter Classes
Specification-Version: 1.0
Specification-Vendor: jdom.org
Implementation-Title: org.jdom.adapters
Implementation-Version: 1.0
Implementation-Vendor: jdom.org

Name: org/jdom/filter/
Specification-Title: JDOM Filter Classes
Specification-Version: 1.0
Specification-Vendor: jdom.org
Implementation-Title: org.jdom.filter
Implementation-Version: 1.0
Implementation-Vendor: jdom.org

Name: org/jdom/transform/
Specification-Title: JDOM Transformation Classes
Specification-Version: 1.0
Specification-Vendor: jdom.org
Implementation-Title: org.jdom.transform
Implementation-Version: 1.0
Implementation-Vendor: jdom.org

Name: org/jdom/xpath/
Specification-Title: JDOM XPath Classes
Specification-Version: 1.0
Specification-Vendor: jdom.org
Implementation-Title: org.jdom.xpath
Implementation-Version: 1.0
Implementation-Vendor: jdom.org

Ich finde darin keinen Class-Path Eintrag!
Meine Ordnerstruktur vorher war:
Projekt
|---.settings
|---build
|---CVS
|---doc
|---ico
|---lib
|---src
In der ausgepackten FatJar-File ist es:
Projekt_fat
|---com
|------werken
|---------saxpath (Inhalt: 6class-Dateien)
|---META-INF (Inhalt: info.xml; MANIFEST.MF; LICENSE.txt)
|---org
|------eclipse
|---------swt (13 Ordner (ich denke das swt.jar ausgepackt)
|------jaxen
|------jdom
|------saxpath


Ich habe einen Ordner exe wo ich die jarFile drin habe und die swt-win32-3064.dll für das SWT.

Was kann ich noch machen? :confused:

Gruß
Christian
 

Neue Beiträge

Zurück