所以,哥们,又出现问题咯.没事,我也出现了,哈哈哈哈哈,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
评论前必须登录!
注册