ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

使用 java -jar xxxx.jar 运行 jar 包报错: no main manifest attribute

2026/10/2 13:03:38 拓冰建站 浏览量
使用 java -jar xxxx.jar 运行 jar 包报错: no main manifest attribute

1、问题描述

在Linux服务器上本想运行一下自己写的一个JAR,但是报错了!
no main manifest attribute, in first-real-server-1.0-SNAPSHOT.jar
在这里插入图片描述

2、解决办法

在自己的Spring项目的启动类(xxx.xxx.xxx.XXXXApplication)所在的Module中的pom.xml中加上:

 <build><!--最终生成可执行jar的名称--><finalName>first-real-server</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.5.RELEASE</version><executions><execution><phase>package</phase><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

然后再通过Maven重新构建可执行的 jar , 即可解决问题!
在这里插入图片描述

3、浅浅解释下为什么

简单翻译下错误信息:缺少主类


直接原因: MANIFEST.MF 中没有 Main-Class 属性


MANIFEST.MF 是什么:Spring Boot 可执行 JAR 包的核心配置文件


一、先看下报错的 jar

首先解压下这个jar

jar xvf first-real-server-1.0-SNAPSHOT. jar

解压后

在这里插入图片描述
cat MANIFEST.MF 看到只有三行,并没有 Main-Class 属性


二、再看下重新打包后的jar

xxxxxxx@LDMacBook-Pro META-INF % cat MANIFEST.MF 
Manifest-Version: 1.0
Start-Class: org.jing.dong.Application
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Build-Jdk-Spec: 1.8
Spring-Boot-Version: 1.4.5.RELEASE
Created-By: Maven JAR Plugin 3.3.0
Main-Class: org.springframework.boot.loader.JarLauncher

解释下各个属性的含义:

在这里插入图片描述
在这里插入图片描述