You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JACo MP3 Player的Minecraft Forge MOD客户端运行时类缺失问题

问题分析

出现java.lang.NoClassDefFoundError: jaco/mp3/player/MP3Player的核心原因是:编译和IDE运行阶段能正常找到JACo MP3 Player库,但打包MOD时未将该库的类合并到最终的MOD jar文件中,导致客户端运行时无法加载对应类。

解决方案

步骤1:调整库文件位置

把JACo MP3 Player的jar文件从src/main/resources/libs移动到项目根目录下的libs文件夹(没有就新建),这个目录是Gradle默认的第三方库存放位置,能避免资源目录的打包逻辑干扰类加载。

步骤2:修改build.gradle依赖配置

更新dependencies块,将库的引用路径改为根目录的libs:

dependencies {
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9'
    // 改为根目录libs下的jar文件
    compile fileTree(dir: 'libs', includes: ['*.jar'])
}

步骤3:配置jar任务打包依赖类

在build.gradle中添加jar任务配置,把依赖库中的类合并到最终的MOD jar中:

jar {
    // 遍历compile配置的所有依赖,将目录或jar包内容合并到输出jar
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    // 避免重复打包Minecraft/Forge的签名文件(可选,可减少jar体积)
    exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA'
}

步骤4:重新打包MOD

在命令行执行gradlew build,生成的MOD jar会包含JACo MP3 Player的类,将该jar安装到客户端即可解决运行时错误。

补充说明
  • 不要将第三方库放在src/main/resources下,该目录文件会被当作MOD资源(如纹理、配置),不会被添加到类路径。
  • 若使用Eclipse,修改配置后需执行gradlew eclipse重新生成IDE配置,确保IDE正确识别新的库位置。

内容的提问来源于stack exchange,提问作者Sool Sim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:53:12