最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot項目打包的可執(zhí)行jar運(yùn)行報錯問題及解決

 更新時間:2026年04月11日 08:43:35   作者:凡人歌者徐  
本文介紹了SpringBoot項目打包成可執(zhí)行jar文件后無法使用java-jar命令啟動的問題及解決方法,主要是需要在pom.xml文件中添加spring-boot-maven-plugin插件,以便生成正確的MANIFEST.MF文件

問題展現(xiàn)

現(xiàn)在使用springboot開發(fā)spring項目是真的方便快捷,程序開發(fā)完成之后,直接打包成一個可執(zhí)行jar文件,就可以在java環(huán)境中運(yùn)行。

那對于新手小伙伴來說,可能會碰到打包好的可執(zhí)行jar文件無法通過java -jar命令進(jìn)行啟動,報錯提示該可執(zhí)行jar文件中沒有主清單屬性,如下所示。

仔細(xì)觀察該可執(zhí)行jar文件,發(fā)現(xiàn)其只有KB級大小,顯然是有問題的。

問題解決

在springboot項目的pom.xml文件中,添加以下節(jié)點(diǎn)內(nèi)容,并重新打包。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.2.1.RELEASE</version>
        </plugin>
    </plugins>
</build>

可以看到,加上這段內(nèi)容之后,重新打包后的jar文件大小就是MB級,再次使用java -jar命令啟動也再沒有問題。

原理說明

在oracle官網(wǎng)的java文檔中有一段話作者進(jìn)行了部分截取。

The java command starts a Java application. 
If the -jar option is specified, its argument is the name of the JAR file containing class and resource files for the application. 
The startup class must be indicated by the Main-Class manifest header in its source code.

翻譯過來就是說,java命令是用來啟動一個java應(yīng)用的,如果java命令后接了-jar選項,那么緊跟的參數(shù)就是可執(zhí)行jar文件的名字,這個可執(zhí)行jar文件包含了編譯好的字節(jié)碼文件以及資源文件。啟動類必須通過源碼中的manifest頭的Main-Class屬性指定。

簡單點(diǎn)說,java -jar 命令執(zhí)行的時候,會去運(yùn)行可執(zhí)行jar文件的META-INF/MANIFEST.MF文件中的Main-Class屬性指定的類,如果沒有找到,就會報沒有主清單的錯誤。

加了spring-boot-maven-plugin插件生成的MANIFEST.MF文件

沒加spring-boot-maven-plugin插件生成的MANIFEST.MF文件

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 將字符串、list 寫入到文件,并讀取內(nèi)容的案例

    java 將字符串、list 寫入到文件,并讀取內(nèi)容的案例

    這篇文章主要介紹了java 將字符串、list 寫入到文件,并讀取內(nèi)容的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • SpringBoot保護(hù)配置文件中敏感信息的保姆級教程

    SpringBoot保護(hù)配置文件中敏感信息的保姆級教程

    這篇文章主要為大家詳細(xì)介紹了SpringBoot保護(hù)配置文件中敏感信息的保姆級教程,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-12-12
  • Java中如何動態(tài)創(chuàng)建接口的實現(xiàn)方法

    Java中如何動態(tài)創(chuàng)建接口的實現(xiàn)方法

    這篇文章主要介紹了Java中如何動態(tài)創(chuàng)建接口的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • 使用jvm sandbox對三層嵌套類型的改造示例

    使用jvm sandbox對三層嵌套類型的改造示例

    這篇文章主要為大家介紹了使用jvm sandbox對三層嵌套類型的改造示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java?Elastic-Job分布式定時任務(wù)使用方法介紹

    Java?Elastic-Job分布式定時任務(wù)使用方法介紹

    xxl-job?通過一個中心式的調(diào)度平臺,調(diào)度多個執(zhí)行器執(zhí)行任務(wù),調(diào)度中心通過?DB?鎖保證集群分布式調(diào)度的一致性,這樣擴(kuò)展執(zhí)行器會增大?DB?的壓力,然而大部分公司的任務(wù)數(shù),執(zhí)行器并不多;xxl-job?提供了非常好用的監(jiān)控頁面甚至還有任務(wù)失敗的郵件告警功能
    2023-01-01
  • Java中OGNL表達(dá)式語言的使用詳解

    Java中OGNL表達(dá)式語言的使用詳解

    本文介紹了OGNL(ObjectGraphNavigationLanguage)表達(dá)式語言,這是一種用于Java語言的對象圖導(dǎo)航和操作的表達(dá)式語言,它支持訪問對象屬性、調(diào)用對象方法、執(zhí)行算術(shù)和邏輯運(yùn)算,以及處理集合和數(shù)組等操作,OGNL的語法簡潔明了
    2024-12-12
  • Java多線程Thread基礎(chǔ)學(xué)習(xí)

    Java多線程Thread基礎(chǔ)學(xué)習(xí)

    每一個正在執(zhí)行的程序都是一個進(jìn)程,資源只有一塊,所以在同一時間段會有多個程序同時執(zhí)行,但是在一個時間點(diǎn)上,只能由一個程序執(zhí)行,多線程是在一個進(jìn)程的基礎(chǔ)之上的進(jìn)一步劃分,需要的朋友可以參考下
    2023-04-04
  • mybatis-plus根據(jù)任意字段saveOrUpdateBatch更新插入的方法實現(xiàn)

    mybatis-plus根據(jù)任意字段saveOrUpdateBatch更新插入的方法實現(xiàn)

    Iservice接口下的saveOrUpdateBatch方法默認(rèn)是根據(jù)主鍵來決定是要更新還是插入的,本文就來詳細(xì)的介紹一下saveOrUpdateBatch的使用,感興趣的可以來了解一下
    2026-04-04
  • springboot實現(xiàn)熱部署操作方法

    springboot實現(xiàn)熱部署操作方法

    這篇文章主要介紹了springboot實現(xiàn)熱部署操作方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Spring?Boot?完整啟動流程詳解

    Spring?Boot?完整啟動流程詳解

    本文完整解析Spring Boot啟動流程的9個核心階段,結(jié)合源碼與實戰(zhàn)場景,幫助開發(fā)者深入理解框架運(yùn)行機(jī)制,感興趣的朋友跟隨小編一起看看吧
    2025-09-09

最新評論

南乐县| 新巴尔虎左旗| 高台县| 肇源县| 永丰县| 锦州市| 喀什市| 康定县| 阿拉善左旗| 黎城县| 隆化县| 泰来县| 临武县| 建湖县| 牡丹江市| 万宁市| 包头市| 大连市| 惠州市| 开鲁县| 无极县| 濉溪县| 攀枝花市| 疏附县| 广河县| 苏尼特右旗| 旺苍县| 克东县| 城固县| 闽侯县| 普格县| 定安县| 岗巴县| 开封市| 东光县| 剑河县| 抚远县| 湘阴县| 巴林右旗| 都昌县| 清原|