jdk升级到11问题系列-第三方依赖使用了BASE64Decoder

问题描述:

第三方依赖包,目前出现问题的是某银行的sdk导致的使用了 sun.misc.BASE64Decoder 但是在jdk11这个版本该类已经被删除,导致运行是出现错误

Caused by: java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder

替换方式:

Base64.Encoder encoder = Base64.getEncoder();

Base64.Decoder decoder = Base64.getDecoder();

解决方案一:

拿到第三方依赖的源码,修改源码使用java.util.Base64.Encoder、java.util.Base64.Decoder替换

解决方案二:

利用类加载顺序机制,在项目路径定义包相同类名相同的class,并在新的class基础上进行改动

使用java.util.Base64.Encoder、java.util.Base64.Decoder替换

你可能感兴趣的:(java,java,jdk11)