UnsatisfiedLinkError outside NetBeans

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

UnsatisfiedLinkError outside NetBeans

Mac70
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)
Reply | Threaded
Open this post in threaded view
|

Re: UnsatisfiedLinkError outside NetBeans

jmaasing
You include no information on how you "run outside" so it's very hard to say what your classpath looks like.
Reply | Threaded
Open this post in threaded view
|

Re: UnsatisfiedLinkError outside NetBeans

Mac70


"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.
Reply | Threaded
Open this post in threaded view
|

Re: UnsatisfiedLinkError outside NetBeans

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: UnsatisfiedLinkError outside NetBeans

Mac70
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! :)
Reply | Threaded
Open this post in threaded view
|

Re: UnsatisfiedLinkError outside NetBeans

gouessej
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