【Linux】Spring Cloud打完jar包在Linux启动时报错:XXX.XXX.jar中没有主清单属性

目录

报错分析

一、验证MANIFEST.MF 文件内容

二、如何解决?

 三、重新部署服务器jar包

报错分析

        错误信息表明,JAR 文件 (medical-patient-server-3.6.4.jar) 中缺少主清单属性 (Manifest Main Attribute)。主清单属性用于指示 Java 虚拟机 (JVM) 应该执行哪个类

        人话:大概率是打包依赖配置错误,导致 MANIFEST.MF 中找不到Start-Class与Start-Classz的值,即找不到启动类。

 我们所打的JAR包中的MANIFEST.MF 文件内容应该 包含有 如下:

               
                Start-Class: com.medical.MedicalPhysicianApplication(我的包结构,因人而异)

                Start-Class: org.springframework.boot.loader.JarLauncher

①Start-Class含义:用于指定 Spring Boot 的启动类。

②Main-Class含义:用于指定启动 Spring Boot JAR 的主类。

 人话:得有这俩东西才能找到启动类。

一、验证MANIFEST.MF 文件内容

  ①解压jar包:jar xf XXX(改你的jar包路径)

  ②查看META-INF内的MANIFEST.MF 文件包含的内容

jar xf medical-modules/medical-patient/medical-patient-server/target/medical-patient-server-3.6.4.jar

cat META-INF/MANIFEST.MF

  可以看到,jar包中没有Start-Class与Start-Classz的值

二、如何解决?

在当前项目的pom.xml文件加入打包命令(位于project下级)
    <build>
        <finalName>${project.artifactId}</finalName>
        <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>
打包依赖导入成功后,重复上面步骤进行验证!!

 可以见到,在我们导入打包依赖后已经有了我们想要的值。

 三、重新部署服务器jar包

1.接下来去服务器删除原有的jar包,将新生成的jar包上传到服务器
2.java -jar XXX.jar 重新启动   哇,启动成功!

 四、结语

希望这篇文章能解决你的问题,也谢谢你的关注,拜拜~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值