天天看點

Springboot jar包運作時提示jar中沒有主清單屬性

  • 問題:将springboot包打成jar包之後使用

    java -jar

    運作時提示jar中沒有主清單屬性
  • 問題分析:主清單屬性是什麼?
    • 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中沒有主清單屬性
  • 解決方案:在pom中添加如下插件之後執行

    mvn install

    ,此時再執行

    java -jar

    就可以正常啟動程式了
  • <build>
      <plugins>
      	<plugin>
      		<groupId>org.springframework.boot</groupId>
     		<artifactId>spring-boot-maven-plugin</artifactId>
      	</plugin>
      </plugins>
     </build>
               
    之後執行

    mvn install

    ,此時再執行

    java -jar

    就可以正常啟動程式了。親測可行

繼續閱讀