macOS系统使用Java命令运行项目,报错:target/XXX-1.0-SNAPSHOT.jar 中没有主清单属性
在macOS系统终端输入Java命令运行项目:
➜ java -jar target/XXX-1.0-SNAPSHOT.jar
target/XXX-1.0-SNAPSHOT.jar 中没有主清单属性
![](https://img2020.cnblogs.com/blog/818082/202102/818082-20210225103811000-2014272025.png)
—— 疯狂百度了一天,找了很多很多方法,最终主要原因是出在 pom.xml文件中,需要在此文件中指定下运行的主函数,手动定位到主类。
由于之前运行项目都是在 IDEA直接跑某个具体的java类,所以不需要指定。但在终端使用 java命令跑就不一样了,需要指定。
因此需要在此pom.xml文件添加以下内容:(红色部分为新添加的内容)
<build> <finalName>XXX-1.0-SNAPSHOT</finalName> <!-- 导出的jar的名字 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>utf-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.XXX.XXX.Run</mainClass> <!-- 主类的位置,例如上图文件,主类配置应为: --> <!-- <mainClass> import的包.运行的主函数</mainClass> --> </transformer> </transformers> <encoding>utf-8</encoding> </configuration> </execution> </executions> </plugin> </plugins> </build>
添加后保存pom.xml文件,然后再次编译、运行项目,可以跑起来了,不会报 “target/XXX-1.0-SNAPSHOT.jar 中没有主清单属性 ”的错了。
【Reference】
1、成功解决 XXX--1.0-SNAPSHOT.jar中没有主清单属性 (采纳的是其中的解决方案2,因为方案1是Springboot项目。)
2、使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析 (只是觉得很详细,所以贴上来,并无用到)
posted on 2021-02-25 10:39 CuriousZero 阅读(1986) 评论(0) 编辑 收藏 举报