# [JOGL] eclipse export Runnable Jar - startet nicht



## meinname1 (4. Sep 2014)

Hallo,

ich programmiere derzeit ein bisschen mit JOGL in eclipse. Ich habe dafür eine neue Library parallel zur "JRE System Library" erstellt, in der "gluegen-rt.jar" und "jogl-all.jar" enthalten sind. Wenn ich mein Programm in eclipse starte, funktioniert alles perfekt. Wenn ich es aber als Runnable.jar exportiere, kommt erstmal eine Fehlermeldung die ungefähr soviel besagt, dass, wenn ich sie richtig verstanden habe, die neue Library nicht mit in die exportierte Runnable.jar kommt. Wenn ich die generierte .jar also mit Java öffne, passiert einfach gar nichts.
Ich habe schon probiert einige .jar und .lib Dateien von JOGL in die runnable.jar zu packen und die Manifest irgendwie zu bearbeiten, habe es aber nicht geschafft.

Könnt ihr mir bitte helfen?


----------



## JavaMeister (5. Sep 2014)

Wir haben keine Fehlermeldung. 

Keine Informationen zur Konfiguration deines buildpfades

Und offensichtlich hast du nicht danach gegooelt.


----------



## anti-held (5. Sep 2014)

Beim Eclipse Import gibt es einen Punkt Library handling.
Bei diesem kannst du auswählen, ob die Libraries in die JAR entpackt werden sollen, als ganzes eingefügt werden sollen, oder in einen Ordner neben der generierten JAR eingefügt werden sollen.

Wenn du hier auswählst, dass die Libraries in die JAR eingefügt werden sollen, müssten sie auch anschließend dort sein.

Um die richtige Fehlermeldung zu sehen, kannst du die JAR in einer Console mit
java -jar <packagename>.jar
öffnen.
Dann wird dir der Stacktrace angezeigt.


----------



## meinname1 (5. Sep 2014)

Hallo,

erstmal Entschuldigung dafür, dass ich es nicht probiert habe über die Konsole zu starten.
Als erstes kamen ein paar Fehlermeldung, dass das Programm bestimmte .dll Dateien nicht finden konnte, also habe ich sie mit in den Ordner gepackt, wo meine Runnable.jar liegt. Das waren folgende "gluegen-rt.dll", "nativewindow_win32.dll" und "nativewindow_awt.dll". Jetzt kamem folgende (Fehler)Meldungen:
(bitte nicht fragen, warum ich die Datei Kleine.jar genannt habe; Ich hoffe in dem formierten Code gehts einfacher zu lesen)


```
C:\Users\Max\Desktop>java -jar Kleine.jar
Catched FileNotFoundException: C:\Users\Max\Desktop\Kleine-natives-windows-amd64
.jar (Das System kann die angegebene Datei nicht finden), while addNativeJarLibs
Impl(classFromJavaJar class com.jogamp.common.os.Platform, classJarURI jar:file:
/C:/Users/Max/Desktop/Kleine.jar!/com/jogamp/common/os/Platform.class, nativeJar
BaseName Kleine-natives-windows-amd64.jar): [ file:/C:/Users/Max/Desktop/Kleine.
jar -> file:/C:/Users/Max/Desktop/ ] + Kleine-natives-windows-amd64.jar -> slim:
 jar:file:/C:/Users/Max/Desktop/Kleine-natives-windows-amd64.jar!/
```


Der folgende Abteil kam 3 mal. Es waren wirklich die exakt selben Meldungen:


```
Catched IOException: TempJarCache: addNativeLibs: jar:file:/C:/Users/Max/Desktop
/Kleine-natives-windows-amd64.jar!/, previous load attempt failed, while addNati
veJarLibsImpl(classFromJavaJar class jogamp.nativewindow.NWJNILibLoader, classJa
rURI jar:file:/C:/Users/Max/Desktop/Kleine.jar!/jogamp/nativewindow/NWJNILibLoad
er.class, nativeJarBaseName Kleine-natives-windows-amd64.jar): [ file:/C:/Users/
Max/Desktop/Kleine.jar -> file:/C:/Users/Max/Desktop/ ] + Kleine-natives-windows
-amd64.jar -> slim: jar:file:/C:/Users/Max/Desktop/Kleine-natives-windows-amd64.
jar!/
```


Und das hier, glaube ich, ist die eigentliche Fehlermeldung:


```
Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: Profile G
L_DEFAULT is not available on WindowsGraphicsDevice[type .windows, connection de
con, unitID 0, handle 0x0, owner false, NullToolkitLock[]], but: []
        at javax.media.opengl.GLProfile.get(GLProfile.java:901)
        at javax.media.opengl.GLProfile.getDefault(GLProfile.java:632)
        at javax.media.opengl.awt.GLCanvas.<init>(GLCanvas.java:284)
        at javax.media.opengl.awt.GLCanvas.<init>(GLCanvas.java:210)
        at javax.media.opengl.awt.GLCanvas.<init>(GLCanvas.java:200)
        at de.MaxTr÷ger.World.JOGL2Nehe06.<init>(JOGL2Nehe06.java:93)
        at de.MaxTr÷ger.World.JOGL2Nehe06$1.run(JOGL2Nehe06.java:40)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
```


Eigentlich steht da doch, dass irgendwie dieses GL nicht auf Windows funktioniert, oder so. Aber in eclipse hatte ich doch keine Programmierfehler, da da ja alles funktioniert hat.


----------

