想把项目挂在远程Linux上,打包jar包后在dos下用java -jar 包名
时遇到了问题(本地可以正常运行),查了半天的资料,总结了一下,解决方法大致无非以下几种:
一、根目录命令行打包
都是说什么不能用idea打包,要在根目录用命令mvn clean package
啥的,亲测不是这个问题,因为我解决后也试过用idea直接打包是可以的
二、添加打包静态资源
还有一种说法是缺少静态资源文件,比如mapper.xml的文件是放在静态资源resources
下的maven打包时候没有打包进去,实测也不是这个问题
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
三、添加项目启动类
<configuration>
<fork>true</fork>
<!--这里写上main方法所在类的路径-->
<mainClass>com.gu.t_e.TEApplication</mainClass>
</configuration>
这个问题确实存在,不可或缺
解决
自己还是缺乏自主解决问题的能力,遇到问题就想度娘,度娘半天无果,只能自己看报错慢慢解决问题,很多报错给我了,但是我确实不知道问题在哪,只能老老实实看,发现了个高频异常
java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver
于是尝试更换高版本驱动(原来版本5.0.13)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>8.0.18</version>
</dependency>
完美启动,原因就是驱动版本过低,但是确实不知道为什么在idea里能正常运行,打包就出错