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

Posted 宋兴柱-Sindrol

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次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版本。

 

 

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

 

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

 

以上是关于记录一次OracleJDK开发的项目发部到Linux中使用OpenJDK启动后失败的错误的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Oracle JDK和Open JDK

mysql中的递归调用

关于使用wget下载oracleJDK问题

研发部的日常工作

记录在一次前后端分离的项目开发中遇到的坑

linu运维:一次linux重启时间过长的排查