Game mit LWJGL/JOGL in executable JAR packen, wie?

Friedhelm

Bekanntes Mitglied
So, ich wollte jetzt mein Game mal in ein JAR packen lassen (von Eclipse => Export), nur kann er wohl die Librarys nicht finden, da er den lib Ordner nicht mit kopiert wo LWJGL und JOGL2 drin liegen. Menuelles reinkopieren in die JAR-Datei hat nichts gebracht.

Kann mir einer eine kurze Anleitung geben wie ich das alles in ein ausführbares JAR bekomme?

Achso, ich packe die OpenGL Libs immer in den Projektordner, weil ich die Libs nicht global auf den Rechner erreichbar haben möchte, um zu sehen ob es auch ohne funktioniert. Denn wenn ich das Game weitergebe... dann hat jemand anderes sicherlich kein extra LWJGL oder JOGL installiert und per Konsole den CLasspath gesetzt 😉. Das Game soll einfach die Libs aus dem JAR nehmen.

Wäre nett wenn mir da jemand behilflich sein könnte.


Beim ausführen der executable JAR kommt das:

Java:
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]	Exception in thread "main" java.lang.UnsatisfiedLinkError: no nativewindow_jvm in java.library.path
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1754)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at java.lang.Runtime.loadLibrary0(Runtime.java:823)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at java.lang.System.loadLibrary(System.java:1045)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at com.sun.nativewindow.impl.NativeLibLoaderBase.loadLibraryInternal(NativeLibLoaderBase.java:199)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at com.sun.nativewindow.impl.NativeLibLoaderBase.access$000(NativeLibLoaderBase.java:50)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at com.sun.nativewindow.impl.NativeLibLoaderBase$DefaultAction.loadLibrary(NativeLibLoaderBase.java:88)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at com.sun.nativewindow.impl.NativeLibLoaderBase.loadLibrary(NativeLibLoaderBase.java:126)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at com.sun.nativewindow.impl.NativeLibLoaderBase$1.run(NativeLibLoaderBase.java:133)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at java.security.AccessController.doPrivileged(Native Method)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at com.sun.nativewindow.impl.NativeLibLoaderBase.loadNativeWindow(NativeLibLoaderBase.java:131)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at com.sun.nativewindow.impl.jvm.JVMUtil.<clinit>(JVMUtil.java:53)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:625)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at javax.media.opengl.awt.GLCanvas.<clinit>(GLCanvas.java:78)
28.08.10 03:26:14	[0x0-0x3bc3bc].com.apple.JarLauncher[3482]		at
 
Zuletzt bearbeitet:
Teilweise. Ich bin jetzt auf LWJGL umgestiegen. Damit funktionierts.


Bei JOGL2 bekomme ich einen in der executable JAR den Fehler:

Nicht abgefangene Ausnahme in main-Methode:
java.lang.NoSuchMethodError:
com.sun.gluegen.runtime.BufferFactory.nativeOrder
(Ljava/nio/ByteBuffer😉 Ljava/nio/ByteBuffer;

-beenden-

Keine Ahnung was das bei JOGL2 soll. Hat einer einen Tip?
 
Bei JOGL2 bekomme ich einen in der executable JAR den Fehler:

Nicht abgefangene Ausnahme in main-Methode:
java.lang.NoSuchMethodError:
com.sun.gluegen.runtime.BufferFactory.nativeOrder
(Ljava/nio/ByteBuffer😉 Ljava/nio/ByteBuffer;

-beenden-

Keine Ahnung was das bei JOGL2 soll. Hat einer einen Tip?

Aus dem von XHelp verlinktem Thread:

Anschließend musst Du noch ein paar Importanweisungen korrigieren, da Buffers, Animator und FPSAnimator nun in anderen Paketen liegen (com.jogamp...).

Dein source code und die gluegen und/oder jogl Versionen passen nicht zueinander.

Gruß,
Fancy
 
Also in den halbwegs aktuellen Versionen von jogl2 gibt es keine com.sun Klassen mehr. Es kann natürlich sein das Du eine ältere Version von jogl2 nutzt. Nur, entweder die Klasse ist nicht da, weil sie nicht ins jar gepackt wurde oder es wurden die falschen Versionen zusammengepackt.

(Da kommen vermutlich noch ne ganze Reihe von Problemen ehe das läuft. Wundert mich, dass das mit lwjgl so einfach geklappt hat. Hast Du das mal auf einem anderen Rechner gestartet? (Einem der noch nie was mit lwjgl zu tun hatte?))

Gruß,
Fancy
 
Wundert mich, dass das mit lwjgl so einfach geklappt hat. Hast Du das mal auf einem anderen Rechner gestartet? (Einem der noch nie was mit lwjgl zu tun hatte?))

Gruß,
Fancy

Ja, heute habe ich das mal bei meiner Schwester probiert (LWJGL Version). Lief einwandfrei.

Naja das mit com.sun ist wohl weil ich JOGL und LWJGL in ein JAR packe, ob ich nun JOGL2 verwende oder LWJGL. Viellicht liegts daran.
 

Zurück
Oben