Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可执行文件.JAR出现OpenGL错误(架构字不匹配?)_Java_Maven_Opengl_Executable Jar_Jogl - Fatal编程技术网

Java 可执行文件.JAR出现OpenGL错误(架构字不匹配?)

Java 可执行文件.JAR出现OpenGL错误(架构字不匹配?),java,maven,opengl,executable-jar,jogl,Java,Maven,Opengl,Executable Jar,Jogl,我使用Java和Maven创建了一个基于OpenGL的应用程序。我正在使用。当我从开发环境中构建项目时,应用程序将成功加载并执行 当我使用生成一个包含我编译的应用程序代码及其所有依赖项的JAR时,可执行JAR在能够建立OpenGL上下文之前终止,出现了一个我以前从未见过的错误: Java HotSpot(TM) Server VM warning: You have loaded library /tmp/jogamp_0000/file_cache/jln5003285820939498405

我使用Java和Maven创建了一个基于OpenGL的应用程序。我正在使用。当我从开发环境中构建项目时,应用程序将成功加载并执行

当我使用生成一个包含我编译的应用程序代码及其所有依赖项的JAR时,可执行JAR在能够建立OpenGL上下文之前终止,出现了一个我以前从未见过的错误:

Java HotSpot(TM) Server VM warning: You have loaded library /tmp/jogamp_0000/file_cache/jln5003285820939498405/jln7050454496148437271/libgluegen-rt.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/jogamp_0000/file_cache/jln5003285820939498405/jln7050454496148437271/libgluegen-rt.so: /tmp/jogamp_0000/file_cache/jln5003285820939498405/jln7050454496148437271/libgluegen-rt.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:575)
    at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63)
    at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:95)
    at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:459)
    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:146)
    at com.jogamp.opengl.util.AnimatorBase.<clinit>(AnimatorBase.java:112)
    at com.app.main(Main.java:123)
Java HotSpot(TM)服务器VM警告:您已加载library/tmp/jogamp_0000/file_cache/jln5003285820939498405/jln705045496148437271/libgluegen-rt.so,这可能已禁用堆栈保护。VM现在将尝试修复堆栈保护。
强烈建议您使用“execstack-c”修复库,或使用“-z noexecstack”链接库。
线程“main”java.lang.unsatifiedlinkerror:/tmp/jogamp_0000/file_cache/jln5003285820939498405/jln705045496148437271/libgluegen-rt.so:/tmp/jogamp_0000/file_cache/jln5003285820939498405/jln705045496148437271/libgluegen-rt.so:ELF类错误:ELFCLASS64(可能原因:架构字宽不匹配)
位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
位于java.lang.Runtime.load0(Runtime.java:809)
位于java.lang.System.load(System.java:1086)
位于com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:575)
位于com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63)
位于com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:95)
位于com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:459)
位于com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:421)
位于com.jogamp.common.os.Platform$1.run(Platform.java:317)
位于java.security.AccessController.doPrivileged(本机方法)
位于com.jogamp.common.os.Platform(Platform.java:287)
位于com.jogamp.opengl.GLProfile(GLProfile.java:146)
位于com.jogamp.opengl.util.AnimatorBase.(AnimatorBase.java:112)
位于com.app.main(main.java:123)

你知道会有什么问题吗?值得一提的是,我在这台机器上使用模拟图形,因此我依赖于软件光栅化。

它在您的模拟器中不起作用,但在真正的ARM或32位x86机器上不需要模拟就可以工作。当您使用仿真器时,GlueGen无法检测它应该使用哪种体系结构并加载错误的本机库。请解释你所说的“模拟图形”是什么意思。请检查您的“可执行”JAR是否包含所有本机库并遵循本机布局:您看过我们关于这个Maven插件的说明了吗?