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

运行带依赖的可执行Jar时遭遇main类ClassNotFoundException求助

解决Jar包无法找到主类的问题

嘿,我一眼就发现问题所在了!你的MANIFEST.MF文件里Main-Class行的末尾多了个分号;,这直接导致JVM找不到主类——它会把com.foo.baitshop.Design;当作完整的类名去查找,可实际你的类名是com.foo.baitshop.Design,多出来的分号让它变成了一个不存在的类路径。

解决步骤:

  1. 修正Maven插件配置
    如果你用的是maven-shade-plugin或者maven-jar-plugin,检查配置里的mainClass参数,确保末尾没有多余的分号。比如maven-shade-plugin的正确配置示例:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.4.1</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>com.foo.baitshop.Design</mainClass>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>
    
  2. 重新打包Jar
    在项目根目录执行Maven命令,重新生成正确的Jar包:

    mvn clean package
    
  3. 再次运行Jar包
    回到Jar所在目录,执行运行命令:

    java -jar baitshop2-1.0-SNAPSHOT-jar-with-dependencies.jar
    

如果临时想快速验证,也可以手动解压Jar包,修改META-INF/MANIFEST.MF里的Main-Class行,去掉末尾的分号后重新打包,但更推荐修改Maven配置,这样后续打包都不会再出现这个问题。

内容的提问来源于stack exchange,提问作者L. Blanc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:03:52