Like in topic. When I am using JOGL inside NetBeans, everything works even without any natives in run directory (with only gluegen-rt and jogl-all added as library), but when I am trying to run it outside NetBeans, then every frame error at the botton of this post appears.
This is my setup of libraries in lib folder: java.lang.UnsatisfiedLinkError: jogamp.opengl.gl4.GL4bcImpl.dispatch_glBufferData(IJLjava/lang/Object;IZIJ)V at jogamp.opengl.gl4.GL4bcImpl.dispatch_glBufferData(Native Method) at jogamp.opengl.gl4.GL4bcImpl.access$000(GL4bcImpl.java:29) at jogamp.opengl.gl4.GL4bcImpl$1.create(GL4bcImpl.java:36851) at jogamp.opengl.GLBufferObjectTracker.createBufferStorage(GLBufferObjectTracker.java:166) at jogamp.opengl.gl4.GL4bcImpl.glBufferData(GL4bcImpl.java:37392) at jogamp.opengl.util.GLVBOArrayHandler.bindBuffer(GLVBOArrayHandler.java:60) at jogamp.opengl.util.glsl.GLSLArrayHandlerInterleaved.enableState(GLSLArrayHandlerInterleaved.java:76) at com.jogamp.opengl.util.GLArrayDataClient.enableBuffer(GLArrayDataClient.java:210) at com.jogamp.opengl.util.GLArrayDataClient.seal(GLArrayDataClient.java:199) at jogamp.opengl.util.glsl.GLSLTextureRaster.init(GLSLTextureRaster.java:125) at javax.media.opengl.awt.GLJPanel$OffscreenBackend.initialize(GLJPanel.java:1466) at javax.media.opengl.awt.GLJPanel.initializeBackendImpl(GLJPanel.java:1145) at javax.media.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:519) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JLayeredPane.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source) at javax.swing.RepaintManager$PaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source) at sun.awt.SunGraphicsCallback.runComponents(Unknown Source) at java.awt.Container.paint(Unknown Source) at java.awt.Window.paint(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.access$1100(Unknown Source) at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(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) |
You include no information on how you "run outside" so it's very hard to say what your classpath looks like.
|
"Data" folder contains all data, textures, models etc. needed for the program to work, loaded before "main" window with JOGL GLJPanel is created (textures and models are loaded lazily during runtime in graphics thread). I am sure that it does not cause any problems. "lib" folder contains mentioned libraries, screenshot in first post. I am running program using jar in this folder. |
Administrator
|
This post was updated on .
Hi
Is glBufferData the very first OpenGL method called in your program? Do other JOGL methods work? Do you use at least JOGL 2.1.5? Is the classpath correctly set into the manifest of your JAR (DeedPlanner.jar?)? What do you mean by "everything works even without any natives in run directory"? It works even though you don't put the JARs containing the native libraries close to the JARs containing the Java libraries, doesn't it? Maybe there is a conflict with a version installed on your system. Then, the Java libraries don't match with the native libraries.
Julien Gouesse | Personal blog | Website
|
I just copied libraries directly from JOGL folder to lib and... Everything works correctly. I think I just copied wrong libraries or something like this, however, now everything works as it should. Thank for for help! :)
|
Administrator
|
You're welcome. The wrong native libraries were probably picked when running the application in command line with "java -jar".
Julien Gouesse | Personal blog | Website
|
Free forum by Nabble | Edit this page |