jar包運(yùn)行后顯示沒有主清單屬性的問題及解決
問題現(xiàn)象
jar包運(yùn)行后顯示 沒有主清單屬性!
問題分析
出現(xiàn)這個(gè)報(bào)錯(cuò)主要就是兩個(gè)原因:
1.缺少了項(xiàng)目maven打包插件 spring-boot-maven-plugin。
2.沒有指定具體的項(xiàng)目的Main方法入口或啟動(dòng)類。
解決方法
方法1
1、查看項(xiàng)目打包的pom.xml文件中,添加配置如下:
<!-- 打包格式 -->
<packaging>jar</packaging>
<!-- 打包插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<layout>JAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>2、先執(zhí)行mvn clean清包指令(IDEA工具可以直接點(diǎn)擊:Maven Projects-Lifecycle-clean):
3、清包成功后,再執(zhí)行mvn package打包指令(IDEA工具可以直接點(diǎn)擊:Maven Projects-Lifecycle-package):

4、如果想生成依賴包并存于本地maven倉(cāng)庫(kù)中,則可以執(zhí)行mvn install依賴安裝指令(IDEA工具可以直接點(diǎn)擊:Maven Projects-Lifecycle-install):

5、項(xiàng)目生成target包,且能看到j(luò)ar包即為成功:

方法2
通過IDEA開發(fā)工具:
1、點(diǎn)擊左上角File-Project Structure... :

2、彈出新窗口后點(diǎn)擊Artifacts-"+"號(hào)-JAR-From module with dependenceis... :

3、彈出新窗口后點(diǎn)擊Main Class最優(yōu)邊文件夾圖標(biāo) :

4、彈出新窗口后點(diǎn)擊Project-選擇項(xiàng)目中的啟動(dòng)類-OK :

5、回到上一窗口后點(diǎn)擊Directory for META-INF/MANIFEST.MF右邊的文件夾圖標(biāo)- 選擇自己項(xiàng)目的根路徑-OK:

6、回到上一窗口后點(diǎn)擊OK(可以看見有如下圖所示的改變) :
7、點(diǎn)擊右邊的Maven Projects-點(diǎn)擊Lifecycle下的clean插件-觀察控制臺(tái)信息clean結(jié)束則點(diǎn)擊install或者package也行-等運(yùn)行完就能看見項(xiàng)目根路徑下生成了MANIFEST.MF文件 :

補(bǔ)充
可能有些人配置完,還是不行,大部分原因是因?yàn)轫?xiàng)目中使用的springboot版本不同導(dǎo)致的,文章中我的項(xiàng)目引用的父級(jí)依賴包是2.7.4版本的,親測(cè)能正常打包,所以我的配置是沒問題的。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/>
</parent>如果小伙伴們用的版本號(hào)和我的差別比較大,估計(jì)就會(huì)不適用,建議使用下面的配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
<finalName>${project.name}</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>如果還是不行,就得查一下資料,看看自己項(xiàng)目中用到的springboot版本對(duì)應(yīng)的打包插件配置,尤其是springboot3之后的版本,有很多配置有了很大的改變,本文章主要是用于適應(yīng)大部分項(xiàng)目中使用的springboot2版本。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中的Lombok庫(kù)及使用舉例詳解
Lombok是一個(gè)Java庫(kù),通過注解的方式簡(jiǎn)化代碼編寫,減少樣板代碼,它能夠自動(dòng)生成getter、setter、構(gòu)造函數(shù)、toString等方法,提升開發(fā)效率,這篇文章主要介紹了SpringBoot中的Lombok庫(kù),需要的朋友可以參考下2025-05-05
java生成json實(shí)現(xiàn)隱藏掉關(guān)鍵屬性
這篇文章主要介紹了java生成json實(shí)現(xiàn)隱藏掉關(guān)鍵屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
kotlin快速入門之標(biāo)準(zhǔn)函數(shù)與靜態(tài)方法
學(xué)完了Kotlin的基礎(chǔ)知識(shí),是時(shí)候來來學(xué)習(xí) Kotlin的標(biāo)準(zhǔn)函數(shù)和靜態(tài)方法了,下面這篇文章主要給大家介紹了關(guān)于kotlin快速入門之標(biāo)準(zhǔn)函數(shù)與靜態(tài)方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
Mybatis-plus使用TableNameHandler分表詳解(附完整示例源碼)
這篇文章主要介紹了Mybatis-plus使用TableNameHandler分表詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Java?SpringBoot內(nèi)存泄漏問題與解決過程
這篇文章討論了在Java?Spring?Boot應(yīng)用中高并發(fā)場(chǎng)景下遇到的內(nèi)存泄漏問題,通過對(duì)日志分析、監(jiān)控工具使用和代碼審查,定位了內(nèi)存泄漏的根本原因,并提出了優(yōu)化代碼和使用監(jiān)控工具的解決方案,最后,通過自動(dòng)化測(cè)試和壓力測(cè)試驗(yàn)證了解決方案的有效性2025-11-11
Java實(shí)現(xiàn)FTP批量大文件上傳下載篇2
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)FTP批量大文件上傳下載的強(qiáng)化篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08

