# Fat Jar mit externen Bibliotheken



## bob_sheknowdas (27. Apr 2012)

Hi,
ich habe ein bischen was mit java3D programmiert und versuche daraus jetzt ein jar-File zu erstellen.
Leider funktioniert das nicht, das erstellte File lässt sich nicht starten.
Ich habe mit dem Fat Har Plugin schon mehrere Files erstellt, die auch immer funktioniert haben. Allerdings gab es sonst nie externe Bibliotheken die man hätte einbinden müssen (so wie jetzt die j3d Bibliothek).
Kann mir vllt jemand einen Hinweis geben, worauf ich achten muss, damit meine Files ausführbar sind?

Vielen Dank im Vorraus.


----------



## Robokopp (27. Apr 2012)

genügt da nicht einfach ein Klick auf Export in Eclipse? Hab das bisher immer so gemacht.
Da kann man dann auswählen, wie die Bibliotheken integriert werden sollen


----------



## bob_sheknowdas (27. Apr 2012)

hab ich probiert, aber iwie klappt das trotzdem nicht.
Das jar-File lässt sich nicht öffnen...


----------



## Robokopp (27. Apr 2012)

bob_sheknowdas hat gesagt.:


> hab ich probiert, aber iwie klappt das trotzdem nicht.
> Das jar-File lässt sich nicht öffnen...



Hast du das Projekt als Executable jar exportiert?

Falls ja, probiere mal folgendes:

Rechtsklick auf die Jar-> Eigenschaften->Öffnen mit->Durchsuchen->Java->jre6/7->bin->javaw.exe


----------



## bob_sheknowdas (27. Apr 2012)

Hab ich probiert  -  klappt aber leider auch nicht.
Wenn du dich selbst mal probieren willst lad ich mein Projekt mal hoch...


----------



## Robokopp (27. Apr 2012)

Also ich hab mir jetzt extra Java 3D runtergeladen und die BuildPath´s geändert, aber die lib cv97r140 existiert bei mir nicht.
Wo kommt die her?

Edit:

Ok hab die Datei jetzt runtergeladen, eingebunden, Jar extrahiert und es funktioniert alles. Die jar lässt sich ausführen

Hast du beim Export die richtige Launchconfig ausgewählt?


----------



## bob_sheknowdas (27. Apr 2012)

Was ist die richtige config?


----------



## Robokopp (27. Apr 2012)

Die heißt in deinem Fall "Spiel-SpaceShooter"


----------



## bob_sheknowdas (27. Apr 2012)

Kannst du dein jar-File mal uploaden?


----------



## Robokopp (27. Apr 2012)

http://dl.dropbox.com/u/69940371/SpaceShooter.jar


----------



## bob_sheknowdas (27. Apr 2012)

Hmm, dein File kann ich auch nicht öffnen...

Könnt das evtl. an meine 64bit Architektur liegen?


----------



## Robokopp (27. Apr 2012)

sicher dass du jar files mit javaW und nicht mit java öffnest?
Weiß nicht, denke aber nicht da java eh platformunabhängig ist. Ich kann mich aber auch irren

Wenn die Jar von mir nicht geht, dann wird beim ausführen irgendwas schieflaufen.

Kannst sie ja mal über die Konsole öffnen und schauen was passiert, dazu einfach mit cd zum richtigen Pfad wechseln (wenn dus einfach haben willst, kopier die jar direkt in den Rootfolder deiner Festplatte, und wechsle mit cd C:\ dorthin)

ausführen funktioniert dann mit "javaw.exe -jar SpaceShooter.jar"


----------



## bob_sheknowdas (27. Apr 2012)

das hat hingehaun.
aber über rechtsklick->öffnen mit  kann ich die javaw nicht auswählen...


----------



## Robokopp (27. Apr 2012)

wiegesagt: rechtsklick auf die jar->eigenschaften->öffnen mit, da auf Ändern->unten rechts auf Durchsuchen->java->jr6/7->bin und da MUSS sie drin sein. außer du hast java irgendwo anders hin installiert


----------



## bob_sheknowdas (27. Apr 2012)

da ist sie auch, aber ich kann sie nicht als gültiges Programm zum Dateiöffnen auswählen...
Beim Doppelklick drauf schließt er zwar das Durchsuchen-Fenster, hat dann aber wieder das Standartjava selektiert...


----------



## Robokopp (27. Apr 2012)

Dann würde ich java nochmal neu installieren, obwohl ich nicht wirklich glaube dass es was bringt.
Ansonsten kann ich dir auch nicht weiterhelfen sry


----------



## GUI-Programmer (27. Apr 2012)

@Robokopp: Deine Jar funktioniert bei mir auch nicht, da *j3dcore-ogl-chk* fehlt:

```
Apr 27, 2012 3:27:41 PM javax.media.j3d.NativePipeline getSupportedOglVendor
Schwerwiegend: java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.librar
y.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-d3d in jav
a.library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:189)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:180)
        at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:137)

        at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:948)
        at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280)
        at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3862)
        at MainPackage.Spiel.<init>(Spiel.java:19)
        at MainPackage.Spiel.main(Spiel.java:27)
```

P.S. Ansonsten funtkionieren bei mir im übrigen alle ausführbare Jars, sowohl meine selbst erstellten, als auch welche aus dem Forum.


----------



## Robokopp (28. Apr 2012)

Ok, da bin ich ratlos. Eventuell hab ich auch was falsch gemacht.
Hast du mal versucht das ganze über die Konsole zu starten?


----------



## GUI-Programmer (28. Apr 2012)

Robokopp hat gesagt.:


> Ok, da bin ich ratlos. Eventuell hab ich auch was falsch gemacht.
> Hast du mal versucht das ganze über die Konsole zu starten?



Das habe ich über die Windows-Konsole gestartet. (Per Doppelklick passiert garnichts)


----------



## Robokopp (28. Apr 2012)

ah okay irgendwie logisch 

Also Zusammenfassung:
-Beim Threadersteller funktioniert es nicht per doppelklick, per Konsole allerdings schon und ohne Fehlermeldungen
-Bei dir funktioniert es nicht per doppelklick, und per Konsole gibts ne Fehlermeldung
-Bei mir funktioniert es per doppelklick und per Konsole ohne Fehler

Ich weiß nicht ob es an der Jar liegt, denn wäre dort irgendwas "defekt", würde sie ja beim Threadersteller auch nicht laufen, selbst über die Konsole nicht, und bei mir dürfte sie dann theoretisch auch nicht laufen.

Was für ein OS benutzt du?(GUI-Programmer)
Vlt läuft auch was beim Classloader schief, aber das ist nur eine leere Vermutung


----------



## GUI-Programmer (28. Apr 2012)

@Robokopp:
Windows 7 Home Premium 64 Bit. Aber vielleicht stimmt bei meiner Grafik auch etwas nicht, siehe Java7: Faszination File AIO ... - allerdings funktioniert bei mir Minecraft perfekt (~80 FPS) welches imho auch OpenGL verwendet. Meine Java Versionen sind Java 7 Update 3, sowohl mit 64 Bit als auch mit 32 Bit getestet.

@TO:
Versuch doch einfach mal meine Programme aus meiner Signatur bspw. zu starten.


----------

