解決java -jar XXX.jar沒(méi)有主清單屬性以及找不到或無(wú)法加載主類(lèi)的問(wèn)題
一、問(wèn)題陳述
環(huán)境:
- Idea 2021
- jdk1.8
我的是spring boot項(xiàng)目,在pom文件是去掉了parent的標(biāo)簽,使用dependencyManagement標(biāo)簽對(duì)spring boot 依賴(lài)進(jìn)行管理。
idea上打包運(yùn)行java -jar gulimall-member-0.0.1-SNAPSHOT.jar時(shí),報(bào)沒(méi)有主清單屬性的錯(cuò)誤,完整的報(bào)錯(cuò)如下:
MrzhuangdeMacBook-Pro:target mrzhuang$ java -jar gulimall-member-0.0.1-SNAPSHOT.jar
gulimall-member-0.0.1-SNAPSHOT.jar中沒(méi)有主清單屬性
二、解決方法
可以參考:Maven指令打包SpringBoot項(xiàng)目提示沒(méi)有主清單文件
1、方法一(問(wèn)題沒(méi)有真正解決)
查閱了網(wǎng)上的解決沒(méi)有主清單屬性辦法
提醒:這種方法,對(duì)于我的問(wèn)題沒(méi)有真正的解決,可能與項(xiàng)目的結(jié)構(gòu)有關(guān)。
1.1 點(diǎn)擊File -> Project Structure
1.1.1 依次點(diǎn)擊artifacts -> “+” -> JAR -> From .....

1.1.2 選擇模塊和主類(lèi),注意下面的/main/java需要去掉,點(diǎn)擊OK,然后點(diǎn)擊apply。

1.2 點(diǎn)擊菜單欄Build -> Build Artifacts

1.2.1 選擇想要生成的jar包,點(diǎn)擊Build

最后在out文件夾中,成功生成了想要的jar包。

1.2.2 運(yùn)行jar包:
雖然解決了沒(méi)有主清單屬性,但是我的又報(bào)另一個(gè)錯(cuò)誤找不到或無(wú)法加載主類(lèi) 。
MrzhuangdeMacBook-Pro:gulimall_member_jar mrzhuang$ java -jar gulimall-member.jar 錯(cuò)誤: 找不到或無(wú)法加載主類(lèi)。com.zhuang.gulimall.member.GulimallMemberApplication
1.3 解決找不到或無(wú)法加載主類(lèi)的方法
提示:此方法因項(xiàng)目的結(jié)構(gòu)而異。我的沒(méi)有解決!
1.3.1 在解決錯(cuò)誤:找不到或無(wú)法加載主類(lèi),也查閱了資料,更多的是在pom文件的mven插件中,增加如下的配置
<configuration>
<mainClass>主類(lèi)的相對(duì)路徑</mainClass>
</configuration> 的配置。
整體的配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.zhuang.gulimall.member.GulimallMemberApplication</mainClass>
</configuration>
</plugin>1.3.2 然后重新Build Artifacts,再次運(yùn)行out路徑下重新生成的jar包。
最終還是報(bào)了找不到或無(wú)法加載主類(lèi) com.zhuang.gulimall.member.GulimallMemberApplication的錯(cuò)誤。
2、方法二(最終解決了問(wèn)題)
在pom文件的maven插件中增加如下的配置:
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>完整的:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>說(shuō)明:spring-boot-maven插件的repackage(goal)有如下兩個(gè)作用:
1、在原始Maven打包形成的jar包基礎(chǔ)上,進(jìn)行重新打包,新形成的jar包不但包含應(yīng)用類(lèi)文件和配置文件,而且還會(huì)包含應(yīng)用所依賴(lài)的jar包以及Springboot啟動(dòng)相關(guān)類(lèi)(loader等),以此來(lái)滿(mǎn)足Springboot獨(dú)立應(yīng)用的特性;
2、將原始Maven打包的jar重命名為XXX.jar.original作為原始文件;
對(duì)項(xiàng)目執(zhí)行 maven clean package,可以看出在target文件中,生成了.jar包以及.original后綴的原始文件。

運(yùn)行生成的jar包:

可以看出成功運(yùn)行了?。。?/p>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java之Map 按值排序 (Map sort by value)
下面小編就為大家?guī)?lái)一篇淺談Java之Map 按值排序 (Map sort by value)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
SpringBoot+Echarts實(shí)現(xiàn)請(qǐng)求后臺(tái)數(shù)據(jù)顯示餅狀圖
這篇文章主要介紹了SpringBoot+Echarts實(shí)現(xiàn)請(qǐng)求后臺(tái)數(shù)據(jù)顯示餅狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
Java中HTTP請(qǐng)求的常見(jiàn)錯(cuò)誤與排查解決方法
在Java編程語(yǔ)言中,發(fā)送HTTP和HTTPS請(qǐng)求是常見(jiàn)的任務(wù),特別是在開(kāi)發(fā)Web服務(wù)客戶(hù)端或進(jìn)行API交互時(shí),這篇文章主要介紹了Java中HTTP請(qǐng)求的常見(jiàn)錯(cuò)誤與排查解決的相關(guān)資料,需要的朋友可以參考下2025-08-08
RocketMQ中多消息不同狀態(tài)回查的設(shè)計(jì)與優(yōu)化過(guò)程
文章介紹了事務(wù)狀態(tài)回查的觸發(fā)條件、核心挑戰(zhàn)、方案設(shè)計(jì)、實(shí)現(xiàn)、優(yōu)化策略及監(jiān)控告警,通過(guò)多狀態(tài)回查,確保系統(tǒng)在業(yè)務(wù)異常時(shí)仍能保持最終一致性,并提升性能和穩(wěn)定性2026-01-01
JAVA實(shí)現(xiàn)的簡(jiǎn)單萬(wàn)年歷代碼
這篇文章主要介紹了JAVA實(shí)現(xiàn)的簡(jiǎn)單萬(wàn)年歷代碼,涉及Java日期操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
詳解Java數(shù)據(jù)結(jié)構(gòu)和算法(有序數(shù)組和二分查找)
本篇文章主要介紹了詳解Java數(shù)據(jù)結(jié)構(gòu)和算法(有序數(shù)組和二分查找),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09

