执行:java -jar xx.jar 报错jar包没有主清单属性

当执行java-jarxx.jar报错提示缺少主清单属性时,可以在pom.xml文件中添加maven-shade-plugin插件配置,通过ManifestResourceTransformer指定主类(如poi.PoiReadDemo),重新打包后,使用finalName指定的jar名称执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行:java -jar xx.jar 报错jar包没有主清单属性,如图:
在这里插入图片描述
在pom文件中增加build配置,手动将main方法对应的主类进行配置:

<build>
		<!-- 指定导出jar的名字,默认不配置就是项目名,即${project.artifactId},也可以自定义,比如下面的 xxx -->
		<finalName>${project.artifactId}</finalName>
		<!--<finalName>xxx</finalName>-->
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<!--为防止打包失败,这里可以显示指出当前打包正常项目所默认使用的版本是3.1,方便后续其他项目复用-->
				<version>3.1</version>
				<configuration>
					<source>8</source>
					<target>8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<!--2.0.4.RELEASE版本,必须与 jdk8适配-->
				<version>${spring-boot}</version>
				<configuration>
				<!--springboot 对应的main方法入口-->
					<mainClass>com.data.dashboard.expense.ApplicationRun</mainClass>
				</configuration>
				<executions>
					<execution>
						<!--不能去掉,否则主类加载不到MANIFEST.MF文件中-->
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

在这里插入图片描述

然后重新打包mvn clean package,执行finalName标签对应生成的jar文件即可:
在这里插入图片描述
在这里插入图片描述
启动 jar 包Java -jar 项目名称.jar
在这里插入图片描述
tip:
如果还是打包失败的情况下,要考虑是不是 idea 缓存、springboot 版本冲突等问题,本文中 springboot 版本为2.0.4.RELEASE

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值