java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > jar运行报错no main manifest attribute

jar运行报错no main manifest attribute原因分析及解决

作者:西凉的悲伤

文章主要讨论了在使用`java -jar`命令运行jar包时遇到的“nomainmanifestattribute”错误,并提供了可能的解决方案,包括检查pom.xml配置,添加打包插件配置,以及使用IDEA进行打包等方法

jar运行报错no main manifest attribute

在服务器上运行:

java -jar test-0.0.1-SNAPSHOT.jar

报错:

no main manifest attribute, in test-0.0.1-SNAPSHOT.jar

原因

原因是找不到主类。

一般情况下,java 打包成 jar 包需要在 MANIFEST.MF 中指定 Main-Class项,以便运行 java -jar xxx.jar 时找到对应的主类。

将test-0.0.1-SNAPSHOT.jar解压后

查看META-INF下的MANIFEST.MF

而正常的应该是这样的:

解决

1.检查 maven 项目中的 pom.xml 中有没有缺少如下配置,缺少的话加上

<packaging>jar</packaging>

2.在 pom.xml 中的 build 标签下的 plugins 标签下加入如下打包插件配置

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.0</version>
                <configuration>
                    <mainClass>com.xtool.manager.MainDemo</mainClass>
                    <finalName>XTool</finalName>
					 <includes>
                            <include>
                                <groupId>nothing</groupId>
                                <artifactId>nothing</artifactId>
                            </include>
                     </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

说明:

3.在 idea 右边侧边栏的 Maven 选项卡里点击 Lifecyle 下的 package 就可以开始打包了

最终生成的 jar 包就在 target 目录下

如果使用这种打包方式问题任然存在,可以尝试使用 idea 来打包,可参考我另一篇文章:idea 项目代码打包为jar包

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文