欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-19 23:29:38
...

在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);   //解码

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