java -jar运行SpringBoot的jar提示没有主清单属性
1.新建springboot的maven工程在pom文件引入依赖包<dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><versi
1.新建springboot的maven工程
在pom文件引入依赖包
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.4.0.RELEASE</version>
</dependency>
</dependencies>
启动类App.java
@SpringBootApplication
public class App{
public static void main( String[] args ) {
SpringApplication.run(App.class, args);
}
}
测试类controller
@RestController
@RequestMapping("/arthas")
public class ArthasController {
@RequestMapping("/abc")
public String abc(){
return "success";
}
}
然后执行maven install命令将工程打成jar,使用java -jar jar包 。然后回车运行
本以为一切OK?谁知报这个错,什么原因???
主要是:MANIFEST.MF文件,没有指明程序的入口以及版本信息等内容

Main-Class代表了Spring Boot中启动jar包的程序
Start-Class属性就代表了Spring Boot程序的入口类,这个类中应该有一个main方法
Spring-Boot-Classes代表了类的路径,所有编译后的class文件,以及配置文件,都存储在该路径下
Spring-Boot-Lib表示依赖的jar包存储的位置这些值都是SpringBoot打包插件会默认生成的,如果没有这些属性,SpringBoot程序自然不能运行,就会报错:jar中没有主清单属性,也就是说没有按照SpringBoot的要求,生成这些必须的属性。
解决方法,在pom文件中加入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.xqc.arthas.App</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
mainClass:指明启动类的路径+名称,修改完上面文件,再次运行,一切OK
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)