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

Eclipse导出Discord Bot Jar包时如何包含Maven依赖解决运行报错?

解决Eclipse Maven项目导出Jar时依赖未打包的问题

这个java.lang.NoClassDefFoundError完全是因为你的Jar里只包含了自己写的代码,Maven管理的JDA等依赖库根本没被打包进去,运行时JVM找不到这些类就报错了。下面给你两种靠谱的解决办法:

方法一:用Maven Assembly Plugin(推荐,Maven项目标准做法)

这是最稳妥的方式,直接通过Maven配置把依赖和你的代码打包成一个可执行的Jar:

  1. 打开你的pom.xml,在<build>标签下添加Assembly插件的配置:
<plugins>
    <!-- 保留你原有插件配置,新增以下内容 -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
        <configuration>
            <!-- 替换成你的Bot主类全路径,比如com.yourbot.Main -->
            <archive>
                <manifest>
                    <mainClass>你的主类全路径</mainClass>
                </manifest>
            </archive>
            <descriptorRefs>
                <!-- 这个配置会自动打包所有依赖到Jar中 -->
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>
  1. 在Eclipse里右键项目 → Run As → Maven clean,执行完成后再选Run As → Maven install。
  2. 去项目的target目录里找,会生成两个Jar文件:一个是仅包含你的代码的普通Jar,另一个名字带-jar-with-dependencies的就是包含所有依赖的可执行Jar,直接运行这个Jar即可。

方法二:用Eclipse自带的导出向导(快速临时方案)

如果不想修改pom文件,也可以用Eclipse的导出功能直接打包依赖:

  1. 右键项目 → Export → 搜索并选择Runnable JAR file → 点击Next。
  2. 在Launch configuration里选择你之前能正常运行Bot的那个启动配置,Export destination设置Jar的保存路径。
  3. 关键步骤:在Library handling里选择以下任意一个选项:
    • Package required libraries into generated JAR:把所有依赖打包进同一个Jar,Eclipse会自动处理类路径问题。
    • Extract required libraries into generated JAR:把依赖的类文件解压后和你的代码合并(少数情况可能出现类名冲突,但大部分场景下没问题)。
      注意别选默认的Copy required libraries into a sub-folder next to the generated JAR,除非你打算把Jar和依赖文件夹一起分发。
  4. 点击Finish,导出完成后运行这个Jar就不会再出现找不到类的错误了。

另外提醒下,你的项目用的是Java 8,要确保JDA版本和Java 8兼容(从你提供的pom配置来看版本是匹配的,后续如果还有问题可以再核对版本)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:36:35