Base64Encoder和Base64Decoder在Jdk9被删除
参考转载博客 来自https://blog.csdn.net/Cha0DD/article/details/87794268
问题起因
项目使用了Base64Encoder和Base64Decoder两个类,都来自sun包,idea编译时会提示该类是内部Api,可能会在未来版本删除
,在升级springboot2的频繁编译测试后强迫症犯了
查询结果
Jdk8的使用,所在包
package sun.misc;
1
2
3
4
5BASE64Encoder encoder = new BASE64Encoder();
String imagestr = encoder.encode(captcha);
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(imagestr);Jdk9的使用,已经无法使用
sun.misc.BASE64Encoder
和sun.misc.BASE64Decoder
1
2
3
4
5
6
7
8import java.util.Base64.Encoder;
import java.util.Base64.Decoder;
Encoder encoder = Base64.getEncoder();
String result = encoder.encodeToString(byteArray);
Decoder decoder = Base64.getDecoder();
byte[] result = decoder.decode(str);
原因
原因是/lib/tool.jar和/lib/rt.jar已经从Java SE 9中删除