大四寒假日期汇报2.21

java运行jar命令提示没有主清单属性

两个解决办法:

(1)使用解压软件打开jar包,打开META-INF文件夹下的MANIFEST.MF文件,在其中添加Main-Class: XXXX,其中Main-Class:的冒号后面需要有一个空格,XXXX为主程序入口的java类名

参考文章:https://jingyan.baidu.com/article/db55b60990f6084ba30a2fb8.html

(2)此方法为Maven项目打包,在pom.xml文件中添加

<mainClass>Window.FrameWindow</mainClass> <!-- 此处为主入口-->

但是不是单独添加,而且maven项目如果使用IDEA打包的话,即使添加了也不起作用,必须使用maven自己的打包才可以。

        <plugins>
            <plugin>
<!--                此处为maven项目打包所需要引入的jar包,这是第一种方法,此方法不会将依赖的jar包打包到目标jar包中-->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>Window.FrameWindow</mainClass> <!-- 此处为主入口-->
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>7</source>
                    <target>7</target>
                </configuration>
            </plugin>
            <plugin>
                <!--此处为maven项目打包所需要引入的jar包,这是另一种方法-->
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
<!--                            此处为程序的入口(main方法所在类)-->
                            <mainClass>Window.FrameWindow</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
<!--                        将依赖的jar包也打包到目标jar包中-->
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution><!-- 配置执行器 -->
<!--                        此处必须填写,不填写将不会将依赖的jar打包到目标jar包中-->
<!--                        assembly插件-->
                        <id>make-assembly</id>
                        <phase>package</phase><!-- 绑定到package生命周期阶段上 -->
                        <goals>
                            <goal>single</goal><!-- 只运行一次 -->
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

 

posted @ 2021-02-22 09:10  HEIYANG  阅读(51)  评论(0编辑  收藏  举报