java -jar jar包路径 命令提示没有主清单属性

     由于工作上的需求,做了一个解析xml的工具类,需要提供给别人使用。我就将项目打成了一个jar,打算用「java -jar jar包路径 参数一 参数二」命令的方式执行。在自己测试的时候,发现一直提示没有主清单属性,意为找不到程序的入口。后来去查了查,发现是因为没有指定程序的入口类。
    解决方法是:在pom.xml文件中添加如下配置(重点是<mainClass></mainClass>标签,用来指定入口类的路径,如果有包名,在前面写就可以了)
    还有一种方法是打开jar包里的MANIFEST.MF文件,在里面添加Main-Class:带包名的完整类名。至于这个MANIFEST.MF文件,是用来描述你这个jar包的一些信息的。比如一般来说,Manifest-Version(MF文件的版本号)Main-Class(带有main方法的入口类)Class-Path(执行这个jar所需的classpath以及第三方的依赖) 

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>7</source>
                    <target>7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>ParseXml</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

猜你喜欢

转载自blog.csdn.net/Anthony_1223/article/details/80696391