问题:
Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现 “no main manifest attribute, in xxx.jar
”(没有设置Main-Class)、ClassNotFoundException
(找不到依赖包)等错误。
解决:
方法一:
打开jar包,在 ”META-INF“ 文件夹可找到 ”MANIFEST.MF“,使用记事本打开,在 Main-Class 后面填上main程序所在的Class完整路径,然后使用 java -jar 方式运行即可。
方法二:
使用Maven 的 maven-assembly-plugin
插件:
在 pom.xml 中添加插件,其中 <mainClass> 主类路径</mainClass>
一行填写主类路径即可!
最后使用 java -jar 方式运行即可。
<build>
<plugins>
<!-- 打包可运行jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass> 主类路径 </mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>