记录一次OracleJDK开发的项目发部到Linux中使用OpenJDK启动后失败的错误的解决方案

记录一次OracleJDK开发的项目发部到Linux中使用OpenJDK启动后失败的错误的解决方案

一、现象

   基于JAVA SpringBoot2.0.4的项目,发部后项目发部后,放到OpenJDK环境中运行时,提示下列错误:

2019-10-22 10:03:55 [main] WARN
o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception
encountered during context initialization - cancelling refresh attempt:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name ‘defaultValidator’ defined in class path resource
[org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]:
Invocation of init method failed; nested exception is
java.lang.NoClassDefFoundError: Could not initialize class
org.hibernate.validator.internal.engine.valueextraction.ValueExtractorManager

但是使用OracleJDK是正常的。

如图:

二、解决方案

1、解决方案一:

     (1)经过检查,原因是使用IDEA2019.2.3发部出来的文件中,包含一个jar:javafx.base-11.0.0-20180702.224858-3.jar、javafx.base-11.0.0-20180702.223831-2-linux.jar、javafx.base-11.0.0-20180702.224858-3-mac.jar 把这三个JAR删除即可。

     (2)修改设置中的下列地方为你所使用的jdk版本。![](/images/posts/20191022-%E8%AE%B0%E5%BD%95%E4%B8%80%E6%AC%A1OracleJDK%E5%BC%80%E5%8F%91%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%8F%91%E9%83%A8%E5%88%B0Linux%E4%B8%AD%E4%BD%BF%E7%94%A8OpenJDK%E5%90%AF%E5%8A%A8%E5%90%8E%E5%A4%B1%E8%B4%A5%E7%9A%84%E9%94%99%E8%AF%AF%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/364036-20191022101249147-1459443159.png)

2、 解决方案二:使用IDEA2018.1版本发部。

3、 解决方案三:找到Maven的存储仓库,删除掉javafx这些jar所在目录即可。

记录一次OracleJDK开发的项目发部到Linux中使用OpenJDK启动后失败的错误的解决方案
https://www.dearcloud.cn/2019/10/22/20200310-cnblogs-old-posts/20191022-记录一次OracleJDK开发的项目发部到Linux中使用OpenJDK启动后失败的错误的解决方案/
作者
宋兴柱
发布于
2019年10月22日
许可协议