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

Minecraft Forge 1.16.5服务器MySQL JDBC驱动加载失败求助

解决Minecraft Forge 1.16.5服务器MySQL驱动找不到的问题

问题根源

本地Eclipse运行正常,打包后服务器报错ClassNotFoundException,核心原因是MySQL驱动没有被正确打包到最终的mod JAR中,或者Forge类加载器无法识别依赖。你当前的build.gradle配置存在以下问题:

  1. JAR打包时的文件名过滤错误(依赖是mysql-connector-java,但过滤的是mysql-connector-j)
  2. Shadow插件未正确关联Forge的reobfuscation流程
  3. jarJar配置和手动打包逻辑冲突

解决方案(推荐用Shadow插件打包驱动)

修改你的build.gradle,按以下步骤调整:

1. 清理无效配置

  • 移除buildscript中的MySQL驱动classpath依赖(构建脚本不需要这个)
  • 删除jar任务中手动打包驱动的from语句
  • 移除jarJar相关配置(改用Shadow打包进mod JAR)

2. 正确配置Shadow插件

添加Shadow任务配置,确保它基于reobfuscated的JAR打包,并包含MySQL驱动:

// 在build.gradle末尾添加或修改
shadowJar {
    // 等待reobfuscation完成后执行
    dependsOn reobfJar
    // 以reobf后的JAR为基础进行打包
    from reobfJar.archiveFile
    // 包含implementation配置下的所有依赖(这里就是MySQL驱动)
    configurations = [project.configurations.implementation]
    // 可选:如果担心类冲突,可以重命名MySQL驱动的包路径
    // relocate 'com.mysql.cj', 'com.yourname.modid.lib.mysql'
}

// 让构建最终输出Shadow打包后的JAR
build.finalizedBy(shadowJar)

3. 简化依赖配置

保留基础依赖即可:

dependencies {
    minecraft 'net.minecraftforge:forge:1.16.5-36.2.34'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'
}

4. 优化代码(可选但推荐)

删除setup方法中手动加载驱动的代码,JDBC 4.0+会自动扫描类路径中的驱动:

// 移除这段代码
try {
    Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
    LOGGER.error("Failed to load MySQL JDBC driver. Make sure you have the driver JAR file in your mod's dependencies.");
    e.printStackTrace();
}

5. 重新构建

执行命令:

gradlew clean shadowJar

构建完成后,在build/libs目录下找到带-all后缀的JAR文件(比如modid-1.0-all.jar),将其放到服务器的mods目录即可。

备选方案(用jarJar)

如果不想用Shadow,可修正jarJar配置:

  1. 确保jarJar版本和依赖版本完全一致:
dependencies {
    minecraft 'net.minecraftforge:forge:1.16.5-36.2.34'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'
    jarJar(group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'){
        jarJar.pin(it, "8.0.33")
    }
}
  1. 执行gradlew jarJar,将生成的JAR放到服务器mods目录,同时需要将mysql-connector-java-8.0.33.jar放到服务器的libraries/mysql/mysql-connector-java/8.0.33目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:01:59