访问限制:由于限制,无法访问BASE64Encoder类型

问题

Amazon服务上的Alexa API下载了Java示例,将其导入Eclipse,但是无法编译,并因“ 访问限制 ”错误而出现:

Access restriction: The type BASE64Encoder is not accessible due to restriction 
on required library 
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar

使用JDK 1.6和Eclipse IDE 4.2的PS

import sun.misc.BASE64Encoder; // Access restriction error 

   //...
   result = new BASE64Encoder().encode(rawHmac);

应避免使用sun.*软件包,请阅读以下声明

如果您坚持要使用sun.misc.BASE64Encoder ,请在Eclipse中右键单击该项目,然后依次单击属性-> Java编译器->错误/警告->已弃用和受限制的API->禁止引用(访问规则),更改默认值“ 错误 “到” 警告 。 现在,您的代码应该可以编译了,但是带有一些警告消息。

蚀访问规则错误

不建议使用上述解决方案,您应该将sun.misc.BASE64Encoder替换为其他BASE64类,例如Apache common codec

import org.apache.commons.codec.binary.Base64;

    //...	
    result = new Base64().encodeToString(rawHmac);

参考文献

  1. Alexa Web信息服务
  2. Apache通用编解码器
  3. 为什么开发人员不应该编写调用“ sun”包的程序

翻译自: https://mkyong.com/java/access-restriction-the-type-base64encoder-is-not-accessible-due-to-restriction/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值