使用 IntelliJ 设置 JOGL 时出现异常
Exception while setting up JOGL with IntelliJ
这是我关于 Whosebug 的第一个问题,所以如果我不够具体,请原谅我,但我会尽力而为。
所以这是我的问题:
3 个小时以来,我一直在尝试使用 IntelliJ 设置 jogl。按照我的 OS 的 jogl 安装主页上的说明进行操作,IntelliJ 可以毫无问题地识别所有 OpenGL 类。正在读取源代码而没有错误,但问题是:当我尝试启动我的程序时出现此错误:
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /tmp/jogamp_0000/file_cache/jln3160951728563156885/jln8316311171870168112/natives/linux-amd64/libnativewindow_awt.so: /usr/lib/jvm/java-13-oracle/lib/libjawt.so: version `SUNWprivate_1.1' not found (required by /tmp/jogamp_0000/file_cache/jln3160951728563156885/jln8316311171870168112/natives/linux-amd64/libnativewindow_awt.so)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2440)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2497)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
at java.base/java.lang.Runtime.load0(Runtime.java:744)
at java.base/java.lang.System.load(System.java:1873)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:603)
at com.jogamp.common.jvm.JNILibLoaderBase.access[=10=]0(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 jogamp.nativewindow.NWJNILibLoader.access[=10=]0(NWJNILibLoader.java:39)
at jogamp.nativewindow.NWJNILibLoader.run(NWJNILibLoader.java:49)
at jogamp.nativewindow.NWJNILibLoader.run(NWJNILibLoader.java:41)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at jogamp.nativewindow.NWJNILibLoader.loadNativeWindow(NWJNILibLoader.java:41)
at jogamp.nativewindow.jawt.JAWTUtil.<clinit>(JAWTUtil.java:336)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:416)
at com.jogamp.nativewindow.NativeWindowFactory.run(NativeWindowFactory.java:344)
at com.jogamp.nativewindow.NativeWindowFactory.run(NativeWindowFactory.java:340)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at com.jogamp.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:340)
at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1721)
at com.jogamp.opengl.GLProfile.access[=10=]0(GLProfile.java:80)
at com.jogamp.opengl.GLProfile.run(GLProfile.java:230)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216)
at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2297)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:988)
at com.jogamp.opengl.GLProfile.getDefault(GLProfile.java:722)
at com.jogamp.opengl.GLProfile.getDefault(GLProfile.java:733)
at PongGame.run(Pong3DTex.java:217)
at Pong3DTex.run(Pong3DTex.java:1028)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)'"
我完全不知道发生了什么,为什么会这样,'SUNWprivate_1.1' 应该是什么。异常所指的行说:GLProfile glp = GLProfile.getDefault();
这实际上就像我代码中执行的第一行。
这一切都发生在我的笔记本电脑 运行 最新版本的 elementaryOS 上,我对 Linux 还很陌生,所以我对 atm 完全不知所措。在 Windows 上,当我告诉 IntelliJ jogl 的 jar 文件夹的路径时,一切正常。
所以我真的希望你们能帮助我,因为我已经到了智慧的尽头。感谢您的每一个回答。
好的。于是研究了6个小时,一遍又一遍重装java/jogl发现了问题:我用的是oraclejdk13,好像和linux上的jogl不兼容所以我卸载了 jdk13 并下载了 open jdk 11。仍然没有麦芽汁,但我收到一条不同的异常消息。扔掉 open jdk 11 并安装 open jdk 8 而不是 et voila -> 它终于工作了。 8小时我不得不浪费在这样的废话上学习。为什么东西不能只在 linux 上工作?为什么总有一些隐藏的废话阻止你做你需要做的事情? – CaptainIceBl0ck 24 分钟前
这是我关于 Whosebug 的第一个问题,所以如果我不够具体,请原谅我,但我会尽力而为。 所以这是我的问题: 3 个小时以来,我一直在尝试使用 IntelliJ 设置 jogl。按照我的 OS 的 jogl 安装主页上的说明进行操作,IntelliJ 可以毫无问题地识别所有 OpenGL 类。正在读取源代码而没有错误,但问题是:当我尝试启动我的程序时出现此错误:
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /tmp/jogamp_0000/file_cache/jln3160951728563156885/jln8316311171870168112/natives/linux-amd64/libnativewindow_awt.so: /usr/lib/jvm/java-13-oracle/lib/libjawt.so: version `SUNWprivate_1.1' not found (required by /tmp/jogamp_0000/file_cache/jln3160951728563156885/jln8316311171870168112/natives/linux-amd64/libnativewindow_awt.so)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2440)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2497)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
at java.base/java.lang.Runtime.load0(Runtime.java:744)
at java.base/java.lang.System.load(System.java:1873)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:603)
at com.jogamp.common.jvm.JNILibLoaderBase.access[=10=]0(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 jogamp.nativewindow.NWJNILibLoader.access[=10=]0(NWJNILibLoader.java:39)
at jogamp.nativewindow.NWJNILibLoader.run(NWJNILibLoader.java:49)
at jogamp.nativewindow.NWJNILibLoader.run(NWJNILibLoader.java:41)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at jogamp.nativewindow.NWJNILibLoader.loadNativeWindow(NWJNILibLoader.java:41)
at jogamp.nativewindow.jawt.JAWTUtil.<clinit>(JAWTUtil.java:336)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:416)
at com.jogamp.nativewindow.NativeWindowFactory.run(NativeWindowFactory.java:344)
at com.jogamp.nativewindow.NativeWindowFactory.run(NativeWindowFactory.java:340)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at com.jogamp.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:340)
at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1721)
at com.jogamp.opengl.GLProfile.access[=10=]0(GLProfile.java:80)
at com.jogamp.opengl.GLProfile.run(GLProfile.java:230)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216)
at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2297)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:988)
at com.jogamp.opengl.GLProfile.getDefault(GLProfile.java:722)
at com.jogamp.opengl.GLProfile.getDefault(GLProfile.java:733)
at PongGame.run(Pong3DTex.java:217)
at Pong3DTex.run(Pong3DTex.java:1028)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)'"
我完全不知道发生了什么,为什么会这样,'SUNWprivate_1.1' 应该是什么。异常所指的行说:GLProfile glp = GLProfile.getDefault();
这实际上就像我代码中执行的第一行。
这一切都发生在我的笔记本电脑 运行 最新版本的 elementaryOS 上,我对 Linux 还很陌生,所以我对 atm 完全不知所措。在 Windows 上,当我告诉 IntelliJ jogl 的 jar 文件夹的路径时,一切正常。
所以我真的希望你们能帮助我,因为我已经到了智慧的尽头。感谢您的每一个回答。
好的。于是研究了6个小时,一遍又一遍重装java/jogl发现了问题:我用的是oraclejdk13,好像和linux上的jogl不兼容所以我卸载了 jdk13 并下载了 open jdk 11。仍然没有麦芽汁,但我收到一条不同的异常消息。扔掉 open jdk 11 并安装 open jdk 8 而不是 et voila -> 它终于工作了。 8小时我不得不浪费在这样的废话上学习。为什么东西不能只在 linux 上工作?为什么总有一些隐藏的废话阻止你做你需要做的事情? – CaptainIceBl0ck 24 分钟前