UnsatisfiedLinkError java.library.path中没有jogl

时间:2014-02-20 18:32:30

标签: java jogl loadlibrary buildpath

我正在尝试构建一个jogl应用。我下载了jar和本机dll文件。我已将它们包含在我的构建路径中,但是当我运行我的代码时,我从标题中得到错误

这是我的vm文件:

-server
-Xms128m
-Xmx512m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Djava.library.path="C:\Users\Vlad\Documents\dev\jogamp-all-platforms\lib\windows-amd64"

这是该文件夹: enter image description here

以下是我在构建路径中的jar: enter image description here

最后,如果这里需要实际的代码,那就是:

    import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLCapabilities;
import javax.swing.*;

/**
 *  on 20/02/14.
 */
public class Demo extends JFrame {

    static Demo app = new Demo();
    public static void main(String[] args)
    {

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                app.setVisible(true);
            }
        });
    }

    public Demo(){
        super("This is my first jogl app");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GLCapabilities caps = new GLCapabilities();
        GLCanvas canvas = new GLCanvas(caps);
        canvas.addGLEventListener(new MyGLListener());
        getContentPane().add(canvas);
    }
}

修改

我更改了库以匹配新库:

enter image description here

如你所见,我有本地人和jogl-all.jar,甚至还有gluegen-rt.jar库。

我现在得到的错误是编译器错误:

这是造成它的代码:

 GLCanvas canvas = new GLCanvas(new GLCapabilities());

它说GLCapabilties中的GLCapabilites(GLProfiles)不能应用于();

2 个答案:

答案 0 :(得分:1)

您可能还需要在构建路径中包含gluegen-rt.jar。您应该可以从找到jogl-all.jar(JOGL 2)的相同位置获取此内容。

关于您的编辑,为简单起见,您可以使用:

GLCanvas canvas = new GLCanvas(new GLCapabilities(null));

这将允许您使用默认的GLProfile

答案 1 :(得分:0)

您的源代码使用JOGL 1,而您尝试使用JOGL 2 JAR。而是看my simple example on Wikipedia。您可以在我们的Wiki here中找到安装JOGL的说明。