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

运行Java版Discord EPGP机器人时MAVEN编译成功但启动报错求助

问题解决方案

1. 修复mvn exec:java启动命令错误

你之前使用的mvn exec:java命令格式不符合maven exec插件的传参规则,正确命令需要通过-Dexec.mainClass参数指定主类全限定名,-Dexec.args传递启动参数,在项目根目录执行如下命令即可正常启动:

mvn exec:java -Dexec.mainClass="com.epgpbot.transport.discord.DiscordBotLauncher" -Dexec.args="config.json"

注意主类全限定名不需要加src.main.java前缀,该路径是源码的目录结构,不是编译后类的实际路径。

2. 修复jar包运行缺少依赖的问题

默认maven打包生成的jar仅包含项目本身的代码,不包含gson等第三方依赖,所以运行时会抛出类找不到的错误,有两种常用解决方式:

方式一:打包为带依赖的fat jar

在项目pom.xml的build/plugins节点下添加maven-assembly-plugin配置:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <archive>
      <manifest>
        <mainClass>com.epgpbot.transport.discord.DiscordBotLauncher</mainClass>
      </manifest>
    </archive>
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>

之后重新执行mvn clean package,target目录下会生成后缀为jar-with-dependencies的jar包,提前将写好的config.json放到该jar同目录下,执行如下命令即可启动:

java -jar epgp-discord-bot-0.0.1-jar-with-dependencies.jar config.json

方式二:运行时手动指定依赖路径

如果不想修改pom文件,可以将项目所有依赖的第三方jar放到同一个lib目录下,运行时通过classpath参数指定依赖路径即可:

java -cp "epgp-discord-bot-0.0.1.jar:lib/*" com.epgpbot.transport.discord.DiscordBotLauncher config.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:54:07