macOS系统使用Java命令运行项目,报错:target/XXX-1.0-SNAPSHOT.jar 中没有主清单属性
在macOS系统终端输入Java命令运行项目:
➜ java -jar target/XXX-1.0-SNAPSHOT.jar
target/XXX-1.0-SNAPSHOT.jar 中没有主清单属性
—— 疯狂百度了一天,找了很多很多方法,最终主要原因是出在 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 阅读(2132) 评论(0) 收藏 举报
浙公网安备 33010602011771号