我无法加载gluegen-rt.dll 64位库

Cam*_*una 5 jogl

这是我添加的库:

- gluegen-rt-natives-windows-amd64

- gluegen-rt

- jogl-all-natives-windows-amd64

- jogl-all

这是我得到的例外:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\KamyluKuna\Documents\NetBeansProjects\OpenGL\natives\windows-i586\\gluegen-rt.dll at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1828) at java.lang.Runtime.load0(Runtime.java:792) at java.lang.System.load(System.java:1059) at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:624) at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63) at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:106) at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:487) at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:421) at com.jogamp.common.os.Platform$1.run(Platform.java:317) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.common.os.Platform.<clinit>(Platform.java:287) at com.jogamp.opengl.GLProfile.<clinit>(GLProfile.java:147) at opengl.Lesson1.AppRoot.initGLObjects(AppRoot.java:50) at opengl.Lesson1.AppRoot.<init>(AppRoot.java:134) at opengl.Lesson1.App.<init>(App.java:14) at opengl.Lesson1.App.main(App.java:41) Java Result: 1

gou*_*sej 6

您可能在64位操作系统上使用32位JVM.然后,GlueGen尝试查找32位本机库,而您只提供64位本机库.提供32位本机库或使用64位JVM或使用jogamp-fat.jar(它包含本机库和JogAmp的Java库)而不是使用单独的JAR.

顺便说一下,你没有用"我添加的库"表示你的意思.将包含本机库的JAR放入与包含Java库的JAR相同的目录中,并将包含Java库的JAR添加到类路径中,或者将jogamp-fat.jar放入类路径中(最简单且最不容易出错的解决方案) .

您可以按照我们的wiki的这些说明进行操作.

  • @anishthecoder 使用 jogamp-fat.jar 而不是单独的 JAR。在您的情况下,它可能找不到正确的本机库。jogamp-fat.jar 在单个 JAR 中包含所有 Java 和本机 JogAmp(JOGL、JOCL、JOAL GlueGen)库,它更重但不易出错。 (2认同)