java - 使用 IntelliJ 设置 JOGL 时出现异常
问题描述
这是我关于stackoverflow的第一个问题,所以如果我不够具体,请原谅我,但我会尽力而为。所以这是我的问题: 3 个小时以来,我一直在尝试使用 IntelliJ 设置 jogl。按照我的操作系统的 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$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 jogamp.nativewindow.NWJNILibLoader.access$000(NWJNILibLoader.java:39)
at jogamp.nativewindow.NWJNILibLoader$1.run(NWJNILibLoader.java:49)
at jogamp.nativewindow.NWJNILibLoader$1.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$3.run(NativeWindowFactory.java:344)
at com.jogamp.nativewindow.NativeWindowFactory$3.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$000(GLProfile.java:80)
at com.jogamp.opengl.GLProfile$1.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$1.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$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.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很陌生,所以我完全不知所措。在 Windows 上,当我告诉 IntelliJ jogl 的 jar 文件夹的路径时,一切正常,就是这样。
所以我真的希望你们能帮助我,因为我已经走到了尽头。感谢您的每一个回答。
解决方案
好吧。所以经过6个小时的研究,一遍又一遍地重新安装java/jogl我发现了问题:我使用了oracle jdk13,它似乎与linux上的jogl不兼容,所以我卸载了jdk13并下载了open jdk 11。仍然没有作用,但我收到了不同的异常消息。扔掉 open jdk 11 并安装了 open jdk 8 等等瞧 - >它终于工作了。我不得不用 8 个小时来学习,浪费在这样的废话上。为什么东西不能在 linux 上运行?为什么总是有一些隐藏的 bs 阻止你做你需要做的事情?– CaptainIceBl0ck 24 分钟前
推荐阅读
- go - 我将如何优化在执行 Hash 时读取的代码并从头开始重新读取它?
- javascript - React Redux Firebase:firebase.auth(...).signOut(...).then(...).error 不是函数
- sql - 在带有 UNION 子句的 postgres 中使用 ORDER BY 的问题
- flutter - 使用 Flutter 安装 `flutter_twitter_login` 和 `TwitterKit` 时出现问题
- highcharts - 如何让我的最后一点在 highstock 中闪烁?
- matlab - MATLAB中的嵌套for循环错误或索引错误
- javascript - 如何将 onChange 事件添加到元素列表中,这将使用当前值更新 HTML?
- oracle - 在 docker 容器中安装 oracle 客户端
- c# - C# WPF 菜单未在标题中显示第一个“_”
- java - 鼠标点击后无法绘制塔