JOGL 2.3 - exporting jogl project to executable jar file

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

JOGL 2.3 - exporting jogl project to executable jar file

gouessej
Administrator
This post was updated on .
CONTENTS DELETED
The author has deleted this message.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

JOGL 2.3 - eporting jogl project to executable jar file

miradnil
Hello, I am trying to export my jogl project to executable jar file (I believe you call it fat-jar). When I run the project in Eclipse everything works fine. When I export the project to jar file and run it - nothing happens. I have tried to run it from console and got some error messages about missing natives. I put all the missing dlls to jar location and it solved it but now I get a new error:

com.jogamp.opengl.GLException: Profile GL_DEFAULT is not available on WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x61598cd5]], but: []
        at com.jogamp.opengl.GLProfile.get(GLProfile.java:990)
        at com.jogamp.opengl.GLProfile.getDefault(GLProfile.java:721)
        at com.jogamp.opengl.awt.GLJPanel.<init>(GLJPanel.java:362)
        at com.jogamp.opengl.awt.GLJPanel.<init>(GLJPanel.java:336)
        at com.jogamp.opengl.awt.GLJPanel.<init>(GLJPanel.java:324)
        at main_pckg.Model3DGLPanel.<init>(Model3DGLPanel.java:96)
        at main_pckg.JRoboLabMainFrame.<init>(JRoboLabMainFrame.java:112)
        at main_pckg.JRoboLabMain$1.run(JRoboLabMain.java:29)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(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 Source)
        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)

I can't find a working solution for that.
Reply | Threaded
Open this post in threaded view
|

Re: JOGL 2.3 - eporting jogl project to executable jar file

Xerxes Rånby
This post was updated on .
miradnil wrote
Hello, I am trying to export my jogl project to executable jar file (I believe you call it fat-jar).
"fat-jar" is one single jogamp jar using the name jogamp-fat.jar containing all natives and all jogamp modules
"fat-jar" is available using jogamp jogl 2.3.2
2.3.2 is not released yet but you can try one of the latest test build that include the "fat-jar":
http://jogamp.org/deployment/archive/master/gluegen_885-joal_611-jogl_1424-jocl_1073/fat/jogamp-fat.jar

miradnil wrote
When I run the project in Eclipse everything works fine. When I export the project to jar file and run it - nothing happens. I have tried to run it from console and got some error messages about missing natives.
overwrites of natives for example 32bit windows dll may overwrite the 64bit dll can occur when using:
* the eclipse "one-jar" -> export -> java runnable jar file -> * "Extract required libraries into generated JAR" deployment option.
https://jogamp.org/bugzilla/show_bug.cgi?id=1172
this has been fixed in the upcoming 2.3.2 release
you may want to re-try using the "single-slim" jars from the latest jogamp test build.
http://jogamp.org/deployment/archive/master/gluegen_885-joal_611-jogl_1424-jocl_1073/archive/jogamp-all-platforms.7z


miradnil wrote
I put all the missing dlls to jar location and it solved it but now I get a new error:

com.jogamp.opengl.GLException: Profile GL_DEFAULT is not available on WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x61598cd5]], but: []
        at com.jogamp.opengl.GLProfile.get(GLProfile.java:990)...
I can't find a working solution for that.
it is possible that you have manually mixed 32bit native dll's for use on a 64bit system,
OR if you use a 32bit jvm on a 64bit system
in such case then you will run into trouble initializing opengl. i will not speculate further because we know that when you run the project in Eclipse everything works fine, thus jogamp jogl is working.
I recommend that you try and test using one of the two above mentioned solution: use the new "fat-jar" or the new "single-slim" jars.
Reply | Threaded
Open this post in threaded view
|

Re: JOGL 2.3 - eporting jogl project to executable jar file

gouessej
Administrator
In reply to this post by miradnil
As Xerxes suggested, you should use the latest release candidate which works better with Eclipse JAR export feature.

However, I still advise you to use a build tool supported by Eclipse to have a greater control on the creation of your fat JAR. For example, creating a fat JAR with Apache Ant only requires a few lines with the Ant tasks "jar", "zipfileset" and "zipgroupfileset" (by using <zipfileset src="jogamp-fat.jar" exclude="**/*.mf,**/*.MF"/>).

Moreover, I advise you to read this paragraph about the limitation of the executable far JAR.
Julien Gouesse | Personal blog | Website