在Idea解决找不到sun.misc.BASE64Encoder及sun.misc.BASE64Decoder找不到包

在Idea解决找不到sun.misc.BASE64Encoder及sun.misc.BASE64Decoder找不到包的解决方法

报错原因:
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);   //解码

这样用,还是比较轻松的,可以尝试下

你可能感兴趣的:(java问题分析)