JDK从1.8升级到9.0.1后sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用
参看官网,发现JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中删除。这些JAR中可用的类和资源现在以文件中的内部格式存储在lib目录的命名模块中。 可以使用称为jrt的新方案来从运行时映像检索这些类和资源。 依靠这些JAR位置的应用程序将不再工作
sun.misc.BASE64Encoder 不建议使用java.sun自带包中的内容
import sun.misc.BASE64Encoder;import sun.misc.BASE64Decoder;在项目中,设计到64位编码的。有时开发会用到JDK中自带的BASE64工具。但sun公司是建议不这样做的。尤其是更新了JDK版本,项目甚至还存在保存的信息。 可引用 import org.apache.commons.codec.binary.Base64;进行替换
将原来使用的JDK自带jar包中的
return new BASE64Encoder().encode(encrypted); 替换为 import org.apache.commons.codec.binary.Base64; return Base64.encodeBase64String(encrypted); //编码
将 byte[] encrypted1 = new BASE64Decoder().decodeBuffer(text);
替换为 import org.apache.commons.codec.binary.Base64; byte[] encrypted1 =Base64.decodeBase64(text); //解码
回退jdk:将升级的jdk回退到1.8系列