Spring Boot:jar中沒有主清單屬性

例用spring boot框架在eclipse下可以正常運行,但是使用maven install 打成jar包後,再用java -jar testName.jar運行jar包時報錯誤信息:jar中沒有主清單屬性。
在這裏有一個問題就是主清單屬性是什麼?
以SpringBoot爲例,jar包中包含了三個文件夾:BOOT-INF,META-INF,org,可以把jar包解壓到文件夾下查看,其中META-INF文件夾下有一個MANIFEST.MF文件,該文件指明瞭程序的入口以及版本信息等內容,如下
在這裏插入圖片描述
Main-Class代表了Spring Boot中啓動jar包的程序
Start-Class屬性就代表了Spring Boot程序的入口類,這個類中應該有一個main方法
Spring-Boot-Classes代表了類的路徑,所有編譯後的class文件,以及配置文件,都存儲在該路徑下
Spring-Boot-Lib表示依賴的jar包存儲的位置
這些值都是SpringBoot打包插件會默認生成的,如果沒有這些屬性,SpringBoot程序自然不能運行,就會報錯:jar中沒有主清單屬性,也就是說沒有按照SpringBoot的要求,生成這些必須的屬性。

解決辦法

在pom中添加一個SpringBoot的構建的插件,然後重新運行 mvn install即可。


		<plugin>
  			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-maven-plugin</artifactId>
  		</plugin>

在運行mvn install的時候,自動生成這些主清單屬性,運行java -jar xxx.jar時會根據主清單屬性找到啓動類,從而啓動程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章