使用java -jar命令可以直接运行jar包里面的main函数。
但是,为什么通过Maven打包或者Eclipse export出来的jar不能运行呢?原因很简单,没指定执行哪个类的main方法,如何指定?配置文件,项目文件夹下有一个META-INF文件夹,META-INF文件夹下有一个MANIFEST.MF文件,只要更改该文件就可以了
3.默认该文件内容是:
Manifest-Version: 1.0
Created-By: 1.4.2(Sun Microsystems Inc.)
将其改成
Manifest-Version: 1.0
Created-By: 1.4.2(Sun Microsystems Inc.)
Main-Class: XXX.XXX.XXX.XXX
直接在pom.xml文件里进行更改
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>fully.qualified.MainClass</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build>这样打包的时候会再MANIFEDT.NF里面产生MAIN方法。
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>GaugesDemo</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build>
这个是所有的依赖文件都会被打包。