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

IntelliJ Maven项目构建Jar无法运行:找不到主类问题求助

解决Maven打包Jar后终端运行找不到主类的问题

这绝对是Maven新手最常踩的坑之一,我刚学的时候也碰到过一模一样的情况,咱们来一步步搞定它:

先排查最容易犯的低级错误:运行命令不对

你终端里是不是直接敲了java test2.jar?这就错啦!正确的运行带主类的Jar包命令应该是:

java -jar test2.jar

你之前的命令会把test2.jar当成一个类名来寻找,自然会报找不到主类的错误,先试试改命令能不能解决。

如果命令没问题,那就是Maven打包时没配置主类

IntelliJ能正常运行是因为它自动识别了你的主类,但Maven本身不知道哪个类是入口,所以需要在pom.xml里明确配置,让Maven在生成的MANIFEST.MF里加上Main-Class属性。

具体操作:在pom.xml里添加maven-jar-plugin插件

打开你的pom.xml,在<build>标签里加入以下配置(如果没有<build>标签就新建一个):

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.3.0</version> <!-- 可以用最新稳定版 -->
            <configuration>
                <archive>
                    <manifest>
                        <!-- 这里替换成你自己的主类全限定名 -->
                        <mainClass>com.example.test2.YourMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

比如你的主类叫Main,放在test2包下,那这里就写test2.Main。

关于MANIFEST.MF的位置

这个文件默认不会在IntelliJ的项目结构里显示,它是Maven打包时自动生成在Jar包内部的META-INF目录下。配置完插件后,重新执行mvn clean install,打开生成的Jar包就能看到它里面已经有Main-Class属性了。

额外提醒:如果项目有第三方依赖

如果你的项目用到了其他Jar包依赖,只靠上面的配置可能还会报找不到依赖类的错误,这时候可以换成maven-shade-plugin来打包成可执行的Fat Jar,不过先解决当前的主类问题,之后有需要再调整。

如果按照上面的步骤还是不行,可以把你的pom.xml或者主类的代码贴出来,我再帮你排查~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:08:59