java -jar啟動時報錯:xx.jar中沒有主清單屬性


1.問題背景

在使用SpringBoot架構搭建父子工程時,使用IDEA可以正常啟動,但打成jar包后使用jar方式啟動時,會報錯xx.jar中沒有主清單屬性。

2.原因分析

原因主要是在使用jar方式啟動時,沒有指定Main-Class,導致啟動時找不到主方法,使得SpringBoot項目無法啟動。

嘗試解壓jar包,進入META-INF目錄,查看MANIFEST.MF文件,里面確實沒有指定Start-Class和Main-Class

3.解決方案

指定Main-Class即可。

在子工程的pom.xml文件中添加配置

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

主要是使用goal來指定需要重新打包。作用是在原始Maven打包形成的jar包基礎上,進行重新打包,新形成的jar包不但包含應用類文件和配置文件,而且還會包含應用所依賴的jar包以及Springboot啟動相關類,以此來滿足Springboot獨立應用的特性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM