原因
对jar解压缩,可以看到有一个MANIFEST.MF文件,此文件就是jar运行时要查找的清单目录。
主清单数据,就是我们要运行的主类即程序入口,缺少主清单属性,就不知道从哪开始运行。
因此我们需要对项目进行配置,指定程序入口。
解决方案
在pom.xml文件中进行主类配置
情况1:是maven项目
<build>
<!-- 导出jar的名字 -->
<finalName>java_everything</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>gui.GUIClient</mainClass>
<!-- 主类的位置,根据自己的项目进行变化-->
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
情况2:是SpringBoot项目
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>