sun.misc.BASE64Encoder springboot 打包时异常了

sun公司的依赖包还是不要用了,未来可能会删除,替换为java.util.Base64

由原来的

//import sun.misc.BASE64Decoder;
//import sun.misc.BASE64Encoder;
BASE64Encoder encoder = new BASE64Encoder();

BASE64Dncoder encoder = new BASE64Dncoder();

修改为

import java.util.Base64;
    public static  String byte2Base64(byte[] bytes) {
//        BASE64Encoder encoder = new BASE64Encoder();
        Base64.Encoder encoder =  Base64.getEncoder();
        return encoder.encodeToString(bytes);
    }
public static byte[] base642Byte(String base64Key) throws IOException {
    Base64.Decoder decoder =  Base64.getDecoder();
    return decoder.decode(base64Key);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!针对您提到的 `sun.misc.BASE64Encoder` 的打包报错问题,我可以给您提供一些解决方案。 首先,需要注意的是,`sun.misc.BASE64Encoder` 是一个非标准的类,它不是 Java 标准库中的一部分。因此,使用它可能会导致一些问题,特别是在不同的 Java 版本或不同的环境下。 如果您遇到了 `sun.misc.BASE64Encoder` 的打包报错,可能是因为该类在最新的 Java 版本中已被移除。为了解决这个问题,您可以尝试以下几种方法: 1. 使用 Java 标准库提供的 `java.util.Base64` 类来进行 Base64 编码和解码操作。这是推荐的做法,因为它是 Java 标准库的一部分,可以跨平台使用,并且具有更好的兼容性。 例如,使用 `java.util.Base64` 进行编码可以这样写: ```java import java.util.Base64; public class Main { public static void main(String[] args) { String originalString = "Hello, World!"; String encodedString = Base64.getEncoder().encodeToString(originalString.getBytes()); System.out.println(encodedString); } } ``` 2. 如果您仍然希望使用 `sun.misc.BASE64Encoder`,您可以试试通过设置系统属性来恢复它。在启动 JVM,添加以下参数: ``` -Djdk.internal.lambda.dumpProxyClasses=/path/to/your/project ``` 这样可以将 `sun.misc.BASE64Encoder` 恢复到项目中的 `sun.misc` 包路径下。 请注意,这种方法并不推荐,因为它依赖于非标准的类,并且在未来的 Java 版本中可能会被移除。因此,尽量使用标准库中提供的类来进行 Base64 编码和解码操作。 希望这些信息对您有所帮助!如果您有其他问题,请随提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值