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独立应用的特性。
java -jar启动时报错:xx.jar中没有主清单属性的更多相关文章
- 执行jar包报错:udfFull.jar中没有主清单属性
在windows系统的cmd命令行窗口中执行: java -jar udfFull.jar {"movie":"1287","rate":& ...
- xxx.jar或者xxx.war中没有主清单属性和spring-boot-maven-plugin的作用
因为springboot本身集成了tomcat插件,所以我们可以直接使用mvn clean package命令打成jar包或者war包,然后使java -jar xxx.jar 或者 java -ja ...
- eclipse maven .jar中没有主清单属性
报错环境: windows系统eclipse maven 打包jar包后, 运行 java -jar 报错 E:\My_java\mysql\target>java -jar original- ...
- xxx.jar 中没有主清单属性
springboot 中是可以通过 jar 将整个项目打包成一个fat jar 的, 这个大家都知道. <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --&g ...
- 启动SpringBoot的可执行jar 报错:target\spring-boot-hello-1.0-SNAPSHOT.jar中没有主清单属性
打包成功,但是在执行时报错,没有主清单属性 解决: 增加红框内的依赖: <build> <plugins> <plugin> <groupId>org. ...
- Idea导出jar包运行报错:找不到主清单属性解决方法
解决方法 1.打开项目结构 2.创建一个Artifact 3.设置 我这里使用的maven,所以有resources文件夹 4.创建lib文件夹 右键output diretory,选择创建文件夹,名 ...
- java -jar .jar中没有主清单属性
pom里加上 <build> <plugins> <plugin> <groupId>org.springframework.boot</grou ...
- jar中没有主清单属性
在导出jar时指定主类位置 或手动配置jar包中的MANIFEST.MF文件: 添加Main-Class: gui 参考: JAVA环境变量 CLASSPATH .;%JAVA_HOME%\lib\d ...
- 解决Maven 编译出的jar中没有主清单属性
出现这个问题的原因是 pom 中没有添加主程序入口 在配置中添加如下配置 <plugin> <groupId>org.apache.maven.plugins</grou ...
- idea jar 中没有主清单属性
idea 中maven需要有插件 <build> <plugins> <plugin> <groupId>org.springframework.boo ...
随机推荐
- java checkbox
简介 checkbox code /* * @Author: your name * @Date: 2020-11-04 09:44:08 * @LastEditTime: 2020-11-04 09 ...
- Day13 备战CCF-CSP练习
Day 13 题目描述 题目分析 大模拟,用栈储存每一个多项式,最后根据导数的加法原则依次求导相加,注意取模. C++代码 #pragma GCC optimize(3, "Ofast&qu ...
- SSL证书和域名不匹配咋解决?
SSL证书域名不匹配问题是一个常见的网络安全问题,通常会导致浏览器显示安全警告,影响用户的信任度和网站的正常使用.本文将详细探讨SSL证书域名不匹配的原因,并提供一系列解决方案,帮助网站管理员快速有效 ...
- go学习笔记:Go 语言中的 fmt.Sprintf的用法
sprintf 是 C 语言中的字符串格式化函数,在 Go 语言中对应的是 fmt.Sprintf.以下是详细用法: Go 语言中的 fmt.Sprintf 基本语法 fmt.Sprintf(form ...
- js reduce函数基本知识和应用
javascript中,使用forEach map遍历数组比较多 reduce函数平时用的比较少 const str = '12' const obj = {} Array.from(str).r ...
- OAuth2.0系列之信息Redis存储实践(七)
@ 目录 1.文章前言介绍 2.典型例子实践 3.功能简单测试 OAuth2.0系列博客: OAuth2.0系列之基本概念和运作流程(一) OAuth2.0系列之授权码模式实践教程(二) OAuth2 ...
- C++ 模板参数推导问题小记
↑↑↑↑↑↑↑↑ 问题代码 最近遇到一个模板参数推导的问题,代码如下: 代码 template<typename T> using scalar = std::enable_if_t< ...
- kicad 开源项目的编译
1.安装MSYS2 MSYS2 项目为编译 KiCad 所需的所有依赖项提供了包,点击该按钮下载安装程序 安装完成后,运行 MSYS2 安装路径中的 msys2_shell.cmd 文件,并运行命令 ...
- MyEMS:重塑能源管理,驱动高效节能新变革
在全球能源结构加速转型.节能减排成为共识的当下,能源管理的效率与精准度愈发受到重视. MyEMS 作为一款集数据采集.分析.监控与优化于一体的智慧能源管理系统,正凭借其强大的功能与灵活的适配性,成为企 ...
- MyEMS 开源能源管理系统:赋能双碳目标的能源数字化基础设施
一.系统核心价值与技术基底 MyEMS 作为行业标杆级开源能源管理系统,依托 Python 语言构建的高可扩展性技术框架,实现了能源管理全流程的数字化覆盖.其核心能力涵盖工厂.商业建筑.大型商场.数 ...