报错大概意思就是 该类初始化失败
大概率是缺少依赖的问题。
平时我们可能会更新pom文件,下载新增的依赖,然后将新下载的依赖更新到线上的系统,也是问题的所在:
举例说明:例如我们新增如下的依赖
<!--获取系统CPU等信息-->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>3.9.1</version>
</dependency>
按常规处理,我们可能会去本地的maven仓库,把该依赖复制,更新到线上系统。
但是这样可能会遗漏jar包,因为这个jar包还可能依赖于其他jar包
** 正确的做法,应该是这样(相对于目前我已知的解决办法):**
** 点进去(按住Ctrl,然后鼠标点击),看看是否有依赖的jar包**
查看是否有 <dependencies> 标签,有的话,证明该jar包依赖于其他jar包,这里是有的
** 所以,在线上更新的时候,该jar包也需要更新到线上的,如果不更新,就会出现题目开始的异常**
**NoClassDefFoundError: Could not initialize class **
接下来我们继续点进去,看 jna-platform 是否还有依赖的jar包,如果有,同样需要更新到线上,
依次类推,直到没有<dependencies> 标签出现为止
点进去,发现改jar包也有依赖
按照上面的步骤,继续点进去查看jna是否也有依赖的jar包,进去之后发现没有了<dependencies> 标签,也就没有依赖的jar包了
到此为止,需要更新的jar包就全部找到了
oshi-core jna-platform jna 三个jar包,需要更新到线上。
感觉这种方法还是比较麻烦的,依赖多的话会很难受。
但是目前没有更好的办法,可以解决问题的目的达到了,就可以了吧
版权归原作者 夏夜里的晚风。 所有, 如有侵权,请联系我们删除。