XXX.jar中没有主清单属性
时间: 2023-12-09 14:35:59 浏览: 94
当我们使用`java -jar xxx.jar`命令运行一个jar包时,JVM会去查找MANIFEST.MF文件,该文件包含了jar包的元信息,例如Main-Class、Class-Path等属性。如果该文件不存在或者没有指定Main-Class属性,就会出现“没有主清单属性”错误。根据提供的引用内容,可以看出该jar包缺少了Springboot相关的属性,因此需要在MANIFEST.MF文件中添加这些属性。可以通过以下步骤解决该问题:
1.创建一个空的MANIFEST.MF文件,文件名必须为MANIFEST.MF,注意大小写。
2.在MANIFEST.MF文件中添加以下属性:
```
Manifest-Version: 1.0
Spring-Boot-Version: 2.5.2
Main-Class: com.example.demo.DemoApplication
Start-Class: com.example.demo.DemoApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
```
其中,Main-Class和Start-Class属性的值为Springboot应用程序的启动类的全限定名,Spring-Boot-Classes和Spring-Boot-Lib属性的值分别为Springboot应用程序的类路径和依赖库路径。
3.将MANIFEST.MF文件打包到jar包中,可以使用以下命令:
```
jar cvfm xxx.jar MANIFEST.MF -C <class_path> .
```
其中,xxx.jar为要打包的jar包的文件名,MANIFEST.MF为MANIFEST.MF文件的文件名,-C选项指定了要打包的文件夹,"."表示当前文件夹,<class_path>为Springboot应用程序的类路径。
阅读全文