Java 9 找不到 sun.misc.*

方法1:

file->project Structure->project 原为 11 修改版本为 1.8 解决。 image

方法2:

查看官网发现,JDK 中的 /lib/tool.jar/lib/rt.jar 已经从 Java SE 9 中删除。

1
2
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;

在项目中,涉及到 Base64 位编码,有时开发会用到 JDK 中自带的 BASE64 工具。

sun 公司是建议不要使用它,于是在更新的 JDK 版本,删除了相关依赖包。

可引用 import org.apache.commons.codec.binary.Base64; 进行替换,及:

将原来使用的 JDK 自带 jar 包中的:

1
2
3
import sun.misc.BASE64Encoder;

return new BASE64Encoder().encode(encrypted);

替换为:

1
2
3
import org.apache.commons.codec.binary.Base64;

return Base64.encodeBase64String(encrypted);

并且同时将:

1
2
3
import sun.misc.BASE64Decoder;

byte[] encrypted1 = new BASE64Decoder().decodeBuffer(text);

替换为:

1
2
3
import org.apache.commons.codec.binary.Base64;

byte[] encrypted1 = Base64.decodeBase64(text);

即可正常使用。