1,no main manifest attribute
- 出现原因:
正常情况下,java打包成jar包需要在MANIFEST.MF中指定Main-Class项以便运行java -jar XXX.jar时找到对应的主类。因为-jar的含义就是后面跟的jar包是有main class可独立运行,所以需要在打包成jar包时指定这个类。 - 解决方式
在相应的POM文件中加入如下配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--这里写上main方法所在类的路径-->
<configuration>
<!--com.kismet.p2p.APPConfig即mainClass-->
<mainClass>com.kismet.p2p.APPConfig</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2,class path resource [xxx.properties] cannot be opened because it does not exist
- 出现原因:
问题很明显就是没有该配置文件,可问题来了明明我的resources下面有该配置文件啊怎么就读取不到,idea默认不会打包配置文件,问题就出在mvn打包时没有将resources下面的配置文件打包到jar包里面 - 解决方式:
在需要打包的POM文件中加入如下配置,就能将对应的配置文件打包到jar中
<build>
<resources>
<resource>
<!--src/main/resources :文件资源路径-->
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
重新打包,运行java -jar xxx.jar 即可