当我尝试使用 LWJGL 库加载声音时,为什么会收到错误“NoClassDefFoundError: sun/misc/Unsafe”?

2024-07-01

This is the screenshot of my Eclipse project files. Eclipse Screenshot

当我尝试启动时出现以下错误new Sound("Res/MouseClick.ogg")我的班级中的对象AudioPlayer在第 15 行。

package com.game;
import java.util.HashMap;
import java.util.Map;

import org.newdawn.slick.Music;
import org.newdawn.slick.Sound;

public class AudioPlayer {
    public static Map<String, Sound> soundMap = new HashMap<String, Sound>();
    public static Map<String, Music> musicMap = new HashMap<String, Music>();

    public static void load() {
        try {
            soundMap.put("menu_sound", new Sound("Res/MouseClick.ogg")); // <- throws error
            musicMap.put("music", new Music("Res/Background.ogg"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Music getMusic(String key) {
        return musicMap.get(key);
    }

    public static Sound getSound(String key) {
        return soundMap.get(key);
    }
}

Exception in thread "main" java.lang.NoClassDefFoundError: sun/misc/Unsafe
at lwjgl/org.lwjgl.MemoryUtilSun$AccessorUnsafe.getUnsafeInstance(MemoryUtilSun.java:74)
at lwjgl/org.lwjgl.MemoryUtilSun$AccessorUnsafe.<init>(MemoryUtilSun.java:62)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:166)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:404)
at java.base/java.lang.Class.newInstance(Class.java:590)
at lwjgl/org.lwjgl.MemoryUtil.loadAccessor(MemoryUtil.java:324)
at lwjgl/org.lwjgl.MemoryUtil.<clinit>(MemoryUtil.java:66)
at lwjgl/org.lwjgl.openal.ALC10.alcOpenDevice(ALC10.java:202)
at lwjgl/org.lwjgl.openal.AL.init(AL.java:160)
at lwjgl/org.lwjgl.openal.AL.create(AL.java:138)
at lwjgl/org.lwjgl.openal.AL.create(AL.java:102)
at lwjgl/org.lwjgl.openal.AL.create(AL.java:201)
at slick/org.newdawn.slick.openal.SoundStore$1.run(SoundStore.java:295)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:310)
at slick/org.newdawn.slick.openal.SoundStore.init(SoundStore.java:292)
at slick/org.newdawn.slick.Sound.<init>(Sound.java:54)

at Wave/com.game.AudioPlayer.load(AudioPlayer.java:15)
at Wave/com.game.Game.<init>(Game.java:37)
at Wave/com.game.Game.main(Game.java:157)

Caused by: java.lang.ClassNotFoundException: sun.misc.Unsafe
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 23 more

从您发布的 IDE 屏幕截图中我可以看到您正在使用

  • Java 12,以及
  • Java 模块系统(module-info.java)

注意sun/misc/Unsafe是(遗产)Java内部API因此,在使用 Java 模块系统时,它默认被封装(隐藏)。

为了让您的应用程序(以及您使用的库)访问它,您需要将其显式包含在您的应用程序中module-info.java通过增加requires jdk.unsupported;

或者,您也可以不使用 Java 模块系统——在这种情况下它应该可以正常工作。不过,我建议继续使用模块系统。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我尝试使用 LWJGL 库加载声音时,为什么会收到错误“NoClassDefFoundError: sun/misc/Unsafe”? 的相关文章

  • 当不读取带有 URL 的 QR 码时,zxing QRCodeReader 中出现 ChecksumException

    如果我扫描带有 URL 的 QR 码 以下代码可以完美且快速地运行 然而 如果我用简单的字符串或数字序列解码 QR 码 这就是我想要做的 它有时会随机工作 但 99 的情况下它会失败并出现 ChecksumException if webc
  • 从批处理文件运行 .jar

    我已经创建了一个可执行文件 jar文件 我怎样才能执行 jar使用批处理文件而不提及类路径 在 Windows 上 您可以使用以下命令 start javaw jar JarFile jar 通过这样做 命令提示符窗口不会保持打开状态
  • 使用 Jackson 反序列化非字符串映射键

    我有一张如下所示的地图 public class VerbResult JsonProperty similarVerbs private Map
  • Java 让物体在按住按钮时移动

    如何使 JPanel 在按住按钮时移动并在释放按钮时停止 我尝试过将 thread start 与 Runnable 一起使用以及类似的方式 我总是遇到错误 有人可以帮助我吗 您需要考虑许多重要的因素 按钮的设计初衷并非如此 它们被设计为在
  • 线程完成时是否发出通知信号?为什么此代码示例有效?

    我正在寻找一些线索的谜题 但我不明白为什么以下内容始终打印999999 class Job extends Thread private Integer number 0 public void run for int i 1 i lt 1
  • 从 android 将用户注册到 QuickBlox 用户

    我正在尝试在我的 Android 应用程序中使用 QuickBlox 我阅读了指南并导入了示例 一切正常 我更改了一些用户可以使用 EditText 作为用户名和另一个密码登录的内容 并且效果很好 但现在我想添加一个注册按钮 使用户能够注册
  • 在 Eclipse 中默认将类设为 Final 吗?

    有没有办法让 Eclipse 中的类默认为final 即 在保存操作中 还是在创建新类对话框中 这确实是一个 hack 但是您可以在 Eclipse 设置中设置以下代码模板 在 Java gt 代码样式 gt 代码模板 gt 代码 gt 新
  • Jersey/JAX-RS :在响应标头中返回内容长度而不是分块传输编码

    我正在使用 Jersey 创建 RESTful API 资源 并且ResponseBuilder生成响应 RESTful 资源的示例代码 public class infoResource GET Path service id Produ
  • 我正在从数组列表中获取内存地址,需要信息

    我正在获取一个文本文件并填充一个数组列表 为了测试该文件 我在继续之前将其打印出来 我只能看到内存地址 而看不到文件中的实际信息 我缺少一些简单且可能明显的东西吗 public class TriviaQuestion private St
  • 您可以链接两个 JFormattedTextField 的值吗?

    我有一个带有 2 个 JFormattedTextFields 的界面 我需要它们的值 不仅仅是显示的文本 相同 理想情况下 它们都应该是可编辑的 其中一个的更改会反映在另一个中 我一开始只是在两者之间共享一个文档 但很快就遇到了一个问题
  • Java 中是否可以使用原始类型(int)作为泛型类型?

    具体来说 用一个SortedMap
  • 以编程方式创建 PDF 相册

    我有一组 PDF 相册模板 它们有空白方块 用于放置文本和照片 我的需要是使用这些模板来生成实际的专辑 我的计划是使用 iText 和 Java 我会向应用程序发送一个包含所有要使用的图像 URL 的数组 我将确切地知道图像应该放置在模板上
  • 隧道多部分文件

    我有一个spring接受名为的类的控制器FileUploadBean on POST 控制器方法如下所示 第一控制员 RequestMapping value upload method RequestMethod POST Respons
  • CodenameOne 在构建后停止工作

    我对 codenameone 有一个奇怪的问题 我什至不确定出了什么问题 我尝试过 发送 Windows Phone 版本 并且从那时起我认为我没有更改任何其他内容 然而 在我这样做之后 模拟器无法启动并一直说我的导入是错误的 事实并非如此
  • 如何在servlet应用程序中更改用户的tomcat密码?

    我们的 Web 应用程序部署在 Tomcat 上 目前使用 UserDatabaseRealm 来确保安全 我们希望在应用程序中提供一个页面 用户可以在其中更改密码 一个简单 常见的 Web 应用程序功能 我找不到任何示例 servlet
  • docx4j用html替换变量

    我得到了这个示例代码 用文本替换变量 它工作得很好 WordprocessingMLPackage wordMLPackage WordprocessingMLPackage load new java io File c template
  • 数组的浅拷贝,为什么不能简单地做newArr = oldArr?

    假设我有一个整数数组 orig 我想浅复制它 所以我不能这样做 int shallow orig 我的教授说 对于原语 浅复制和深复制本质上是相同的 因为我们必须复制数组的每个索引 但是将整个数组设置为等于另一个数组会起到同样的作用 对吧
  • 如何为 CompletableFuture::supplyAsync 选择执行器

    CompletableFuture supplyAsync gt IO bound queries 如何为 CompletableFuture supplyAsync 选择执行器以避免污染ForkJoinPool commonPool 里面
  • Java:Set接口和Collection接口的区别

    我刚刚查了一下Set接口 发现它大部分 或完全 只重新声明已经存在于Collection界面 Set本身延伸Collection 所以这是否意味着Set界面自动具有所有功能Collection 那么为什么要重新声明它们呢 例如 Set重新声
  • 计算时间复杂度和 Big-O 表示法 [重复]

    这个问题在这里已经有答案了 我的以下代码的 Big O 表示法的时间复杂度是多少 计算它的步骤是什么 import java io File import java io FileNotFoundException import java

随机推荐

  • 循环 XSL 中的索引

    我在 XSL 中有两个像这样的嵌套循环 此时我使用position 但这不是我需要的
  • ruby - 如何从字符串数组中生成可能的字母顺序组合?

    我有一个字符串数组 ABC GHI 我想要所有 字母 组合 从左到右读 即 AG AH AI BG BH BI CG CH CI but not GA GB HA etc 相似地 ABC DEF GHI 应该生成 ADG ADH ADI A
  • Spark SQL中如何按时间间隔分组

    我的数据集如下所示 KEY Event Type metric Time 001 event1 10 2016 05 01 10 50 51 002 event2 100 2016 05 01 10 50 53 001 event3 20
  • 如何在node.js中编写转换流

    我有一个 csv 解析器作为一系列转换流实现 process stdin pipe iconv decodeStream win1252 pipe csv parse pipe buildObject pipe process stdout
  • 使用 querySelectorAll 获取选定的选项

    我想知道是否可以在 Javascript 中获取当前选定的选项
  • 使用支持流式传输的 basicHttpBinding 保护 WCF 服务

    我的问题是关于安全访问仅向我们公司内部用户公开的 WCF 服务的最佳 也称为 最不痛苦 方法 目标是确保只能通过每个用户安装的单个 Windows 窗体应用程序访问该服务 当调用该服务时 我希望该服务能够验证它是从允许的应用程序调用的 要保
  • java代码中的问号

    有人能解释一下下面代码中的问号吗 INITIAL PERMANCE 也是代码中的静态最终常量 但是语法的最后一行被称为什么 Synapse AbstractCell inputSource float permanence inputSou
  • 可变参数模板中的可变参数模板推导

    我不确定标题是否有意义 但这个例子实际上非常简单 A converter struct with a generic constructor template
  • 终止宏在验证时进一步执行

    我有一个method A 从多种方法调用 在方法 A 的条件下 我必须终止宏 我看到一个选项是Exit sub但这只会退出当前的sub ie method A 剩下的程序继续进行 如何处理这个问题 Sub mainMethod method
  • 使用水晶报表和 VS2010 安装项目无法注册水晶 dll

    我在VS2010中构建了一些水晶报表 并为其创建了一个安装项目 它在我的开发计算机上部署得很好 但在尝试将其安装到客户端计算机上时出现以下错误 我用谷歌搜索这个错误有一段时间了 发现 VC 2005 可再发行组件是一个先决条件 我已将这些合
  • 如何在视图中调用存储过程?

    如何调用在视图中返回数据的存储过程 这可能吗 SQL Server 中不允许这种构造 内联表值函数可以作为参数化视图执行 但仍然不允许像这样调用 SP 下面是一些交替使用 SP 和内联 TVF 的示例 您会发现 TVF 更加灵活 它基本上更
  • 如果没有发生触摸事件,Android SurfaceView 会变慢

    我正在制作一款游戏 除了游戏循环之外一切都很顺利 我正在使用 SurfaceView 并绘制 2D Sprites 位图 目前游戏是一艘穿过小行星带的飞船 飞船停留在屏幕中央 手机向任一方向倾斜以移动小行星 小行星改变位置而不是玩家 当旧的
  • JavaScript 相当于 htonl?

    对于 AJAX 请求 我需要发送一个幻数作为请求正文的前四个字节 首先是最高有效字节 以及请求正文中的其他几个 非常量 值 JavaScript 中是否有相当于 htonl 的东西 例如 给定 0x42656566 我需要生成字符串 Bee
  • 使用 jsoup 收集倒计时器并为 android 设置计时器

    我想解析 eBay 上的倒计时器 span class 5g 20h span 如何用 jsoup 解析它以在 android studio 上创建倒计时器 我可以像平常一样解析它吗element 像下面这样 更新 getMsFromStr
  • 如何从 Tokio 中的非主线程运行异步任务?

    use std thread use tokio task 0 3 4 tokio main async fn main thread spawn task spawn async println 123 join 编译时我收到警告 war
  • F# 泛型/函数重载语法

    我对如何在没有显式类型声明的情况下将函数标记为泛型感到困惑 a gt a let add a b a b 这给了我们 val add a int gt b int gt int 但是我们可以立即调用 add Hello World 现在 a
  • matplotlib中有制作散点图矩阵的函数吗?

    散点图矩阵示例 matplotlib pyplot中有这样的函数吗 对于那些不想定义自己的函数的人来说 Python 中有一个很棒的数据分析库 称为Pandas http pandas pydata org 在那里可以找到分散矩阵 http
  • 激活虚拟环境不起作用

    我创建了两个 virtualenv 并安装了两个不同版本的 django 现在我在激活两个环境时遇到问题 我喜欢这样 source Django1 6 bin activate 然后我看到环境被激活了 然后我这样做 pip install
  • Boost的Dijkstra算法教程

    我很难弄清楚如何使用 Boost 的 Dijkstra 算法 我已经阅读了他们的示例和文档 但我仍然无法理解如何使用它 Boost的文档 http www boost org doc libs 1 50 0 libs graph doc d
  • 当我尝试使用 LWJGL 库加载声音时,为什么会收到错误“NoClassDefFoundError: sun/misc/Unsafe”?

    This is the screenshot of my Eclipse project files 当我尝试启动时出现以下错误new Sound Res MouseClick ogg 我的班级中的对象AudioPlayer在第 15 行