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  阅读(1901)  评论(0编辑  收藏  举报

导航