解决百度平台服务器com.ibm.icu_4.4.2.v20110823.jar包与jdk版本不兼容的问题

最近在项目迁移到百度服务器环境时发现com.ibm.icu_4.4.2.v20110823.jar包与jdk版本不兼容的问题。

首先看下报错信息,发现NoClassDefFoundError异常。

这里注意,ClassNotFoundException与NoClassDefFoundError的区别:

最主要的是一个是编译时发生的,一个是运行时发生的,前者更容易去解决。显然易见我们是属于后者jvm运行时加载类不能初始化。两者更多的区别大家自行去了解。

而NoClassDefFoundError常见的错误原因无非就以下几种:

  1. jar包存在冲突,导致找不到,发生NoClassDefFoundError。
  2. 类路径不正确,jvm无法找到类文件。
  3. 动态加载类时,类文件不存在
  4. jdk版本与Jar包兼容问题。
  5. 也有可能是类静态成员或者静态初始化语句块引起的。

然后一一去排除,首先jar包冲突多发生MAVEN依赖。

类路径不正确问题,通过宝蓝德控制台我们可以看到此jar存在的,路径也是正确的,jvm是可以加载到的。其次本身不是封装的jar而引用的jar,3和5也排除。

后来我查看上面的日志,发现确实与jdk和jar包版本有问题,我很不解只有在百度服务器才会有这种问题,其他服务器都正常。

看我上面标记的红色部分,大概就是版本号无效,超出255或者为负数。然而与下面icu的包有关系。是不是更换icu包或者降低jdk版本就可以了。后来我又在sap的知识库找到一篇类似的帖子。

他这个整体意思是升级了JDK会出现这种问题,要是在SAP平台使用这个jar包jdk需要降低到251版本以下。

因为在别的服务器不会有这种问题,我想使用的百度的服务器是不是也是这种问题,所以就尝试降低了jdk有311到251。

重启实例,发现日志一切正常,信息也正常显示。

问题解决了,我猜测大概与更换了平台服务器有关。com.ibm.icu包与jdk出现了不兼容,只能使用251及以下的版本。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值