You need to enable JavaScript to run this app. 使用Eclipse、Kryonet、LibGDX的Gradle项目无法生成Fat Jar求助
优惠活动
大模型
产品
解决方案
定价
更多

使用Eclipse、Kryonet、LibGDX的Gradle项目无法生成Fat Jar求助

排查与解决路径

1. 解决手动引入本地jar导致的依赖托管失效问题

  • 移除.classpath文件中手动添加的kryonet-2.21-all.jar条目,这是绝大多数配置不生效的核心原因:手动修改.classpath引入的依赖仅对Eclipse编译器可见,Gradle构建流程完全无法识别这部分依赖,哪怕build.gradle里写了完整的fat jar配置,这部分kryonet依赖也不会被纳入最终打包范围。
  • 将本地kryonet-2.21-all.jar移动到项目的desktop/libs路径下,在desktop模块的build.gradle中通过Gradle依赖语法引入,替代原来的手动类路径配置,示例写法:
    implementation files('libs/kryonet-2.21-all.jar')

2. 校验Fat Jar配置的实际生效范围

  • 打开Eclipse的Gradle任务面板,检查build分组下是否存在你自定义的打包任务。如果任务没有出现,说明配置根本没有匹配当前项目结构:LibGDX默认是多模块项目(包含core、desktop、android模块),绝大多数用户会把从公开教程抄来的fat jar配置写到根项目的build.gradle中,这部分配置不会作用到实际生成可执行程序的desktop模块上,完全属于无效配置。
  • 正确的配置需要写入desktop模块对应的build.gradle文件内,针对LibGDX项目适配的可执行fat jar参考配置如下:
jar {
    manifest {
        attributes 'Main-Class': '你的游戏主启动类全路径,例如com.example.game.Launcher'
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    // 必加配置:解决LibGDX资源重复导致的构建失败
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
  • 如果使用Shadow插件实现Fat Jar打包,需要确认插件已经在desktop模块中完成应用,否则对应shadowJar任务不会被Gradle加载,之前写的插件配置不会生效。

3. 修正错误的构建触发方式

  • 不要通过Eclipse自带的「导出Jar」功能执行打包,该流程完全跳过Gradle构建逻辑,不会执行你在build.gradle中写的任何自定义配置。
  • 正确的触发方式为:在Gradle任务面板找到对应打包任务(jar或shadowJar),右键执行运行,最终生成的Fat Jar会输出在desktop/build/libs路径下。

打包完成后可通过解压软件打开生成的Jar包,检查是否存在com/esotericsoftware/kryonet类路径,确认kryonet依赖已经被正确纳入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 09:06:03