添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
有胆有识的楼房  ·  JAVAUI ...·  1 年前    · 
多情的蘑菇  ·  firebase - The term ...·  1 年前    · 

最近研究把项目的JDK升级从1.8升级到9.0.1,在eclipse上配置好JDK为9后,发现项目有错,查看发现sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用。

参看官网,发现JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中删除。这些JAR中可用的类和资源现在以文件中的内部格式存储在lib目录的命名模块中。 可以使用称为jrt的新方案来从运行时映像检索这些类和资源。 依靠这些JAR位置的应用程序将不再工作。( http://www.oracle.com/technetwork/java/javase/9-relnote-issues-3704069.html)

从官网发现,从JDK 1.8开始,就提供了java.util.Base64.Decoder和java.util.Base64.Encoder的JDK公共API,可代替sun.misc.BASE64Decoder和sun.misc.BASE64Encoder的JDK内部API。我把代码做了如下替换:
java.util.Base64.Decoder的官网API: https://docs.oracle.com/javase/9/docs/api/java/util/Base64.Decoder.html
java.util.Base64.Encoder的官网API: https://docs.oracle.com/javase/9/docs/api/java/util/Base64.Encoder.html

* BASE64Encoder 加密 * @param data * 要加密的数据 * @return 加密后的字符串 public static String encryptBASE64(byte[] data) { // BASE64Encoder encoder = new BASE64Encoder(); // String encode = encoder.encode(data); // 从JKD 9开始rt.jar包已废除,从JDK 1.8开始使用java.util.Base64.Encoder Encoder encoder = Base64.getEncoder(); String encode = encoder.encodeToString(data); return encode; * BASE64Decoder 解密 * @param data * 要解密的字符串 * @return 解密后的byte[] * @throws Exception public static byte[] decryptBASE64(String data) throws Exception { // BASE64Decoder decoder = new BASE64Decoder(); // byte[] buffer = decoder.decodeBuffer(data); // 从JKD 9开始rt.jar包已废除,从JDK 1.8开始使用java.util.Base64.Decoder Decoder decoder = Base64.getDecoder(); byte[] buffer = decoder.decode(data); return buffer;

http://www.jianshu.com/p/340965388320