服务器启动jar包的时候报”no main manifest attribute“异常(快捷解决)

avatar
作者
筋斗云
阅读量:0

所以,哥们,又出现问题咯.没事,我也出现了,哈哈哈哈哈,csdn感觉太麻烦了,所以搞了一篇这个. 没得事,往下看,包解决的.

希望可以帮助到各位,感谢阅览!

小手点个赞,作者会乐烂哈哈哈哈哈哈😆😆😆😆

问题描述

启动 jar 包的时候报错no main manifest attribute“异常

这条错误信息表明在尝试运行java_gobang-0.0.1-SNAPSHOT.jar时遇到了问题,没有找到主清单属性。在Java中,当试图运行一个JAR文件时,它需要包含一些必要的主清单属性,尤其是Main-Class属性,该属性指定了JAR文件的主类。

主清单属性的用途

  • Main-Class: 指定JAR文件的主类,即程序的入口点。
  • 其他常用属性还包括Class-Path(指定类路径)、Manifest-Version(指定清单版本)等。

解决方法

1. 生成包含主类的清单文件:

  • 现在一般使用Maven或Gradle构建项目,可以在构建配置中添加清单文件的配置。

  • 对于Maven,1.要在pom.xml文件中添加如下配置:(要配置这个插件)

  • 1<build> 2    <plugins> 3        <plugin> 4            <groupId>org.apache.maven.plugins</groupId> 5            <artifactId>maven-jar-plugin</artifactId> 6            <version>3.2.0</version> 7            <configuration> 8                <archive> 9                    <manifest> 10                        <mainClass>com.example.MainClass</mainClass> 11                    </manifest> 12                </archive> 13            </configuration> 14        </plugin> 15    </plugins> 16</build>

    这里,<mainClass>标签应替换为应用程序的主类全限定名。类似如下:

(注意: 这里的skip 要设置为 false  我当时问题就出在这)

<skip>true</skip>标签。这会导致Maven构建过程中跳过spring-boot-maven-plugin的默认生命周期,这意味着不会自动创建包含Main-Class属性的可执行JAR文件。所有要么移除,要么设false

  • 对于Gradle,可以在build.gradle文件中添加如下配置:

    1jar { 2    manifest { 3        attributes 'Main-Class': 'com.example.MainClass' 4    } 5}

    同样地,com.example.MainClass应替换为你的主类全限定名。

2. 检查JAR文件的清单文件:

  • 使用文本编辑器打开java_gobang-0.0.1-SNAPSHOT.jar文件中的META-INF/MANIFEST.MF文件,检查是否有Main-Class属性。
  • 如果找不到该文件或属性缺失,就创建或修改这文件。

手动添加清单文件:创建的MANIFEST.MF文件内容应该像这样:

如果不使用构建工具,可以手动创建一个MANIFEST.MF文件,并将其放置在META-INF目录下。

1Main-Class: com.example.MainClass 2Manifest-Version: 1.0

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!