0%

Base64Encoder和Base64Decoder在Jdk9被删除

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
    5
    BASE64Encoder encoder = new BASE64Encoder();
    String imagestr =  encoder.encode(captcha);

    BASE64Decoder decoder = new BASE64Decoder();
    byte[] bytes = decoder.decodeBuffer(imagestr);
  • Jdk9的使用,已经无法使用sun.misc.BASE64Encodersun.misc.BASE64Decoder

    1
    2
    3
    4
    5
    6
    7
    8
    import 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中删除