java.lang.NoClassDefFoundError: java/util/Base64

解决方式

jdk版本低于1.8导致的
1.检查项目打包版本是否低于1.8
2.检查项目启动使用的jdk版本是否低于1.8

我在项目中遇到的

1.本地、测试环境功能没有问题
2.正式环境部署了多台机器,功能偶尔不正常
3.拉取日志包含java.lang.NoClassDefFoundError: java/util/Base64错误

解决过程

1.功能偶尔不正常,说明集群中有正常的服务器
2.检查jar包编译版本,打开jar包找到文件:META-INF/MANIFEST.MF,文件中有Build-Jdk: 1.8.0_161。说明jdk版本是没有问题的。
3.结合以上两点,可以判定服务器环境可能是有问题的。
4.确认服务器jdk版本是否是1.8(检查是否是因为环境问题引起的)。
5.确认服务器包是否是最新版本(是否是漏发布引起的)。
6.以上确认都没有问题,无奈之下只能找运维重启(指定jdk版本的那种启动)。
7.重启的时候发现某台服务器的jdk配置不一样

异常的服务器配置

[root@localhost /]# java -version
⋮
[root@localhost /]# hash -l
builtin hash -p /usr/bin/java
[root@localhost /]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 1月 23 2019 /usr/bin/java -> /etc/alternatives/java
[root@localhost /]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 35 1月 23 2019 /etc/alternatives/java -> /usr/java/jdk1.8..0_131/jre/bin/java

正常的服务器配置

[root@localhost /]# hash -l
builtin hash -p /usr/java/jdk1.8.0_131//bin/java java

8.异常服务器的配置java命令映射的是jre的bin目录
9.有这种配置的服务器上的应用重启,启动时指定jdk的bin目录,重启以后功能正常了。

nohup /usr/java/jdk1.8..0_131/bin/java -jar xxx.jar >/dev/null 2>&1 &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值