解決找不到sun.misc.BASE64Encoder 的jar包問題
*問題:
在MyEclipse中用到了BASE64Decoder類,也沒辦法import sun.misc.BASE64Decoder;
Eclipse提示如下:
Access restriction: The type BASE64Decoder is not accessible due to restriction on required library C:\Program files\java\jre6\lib\rt.jar
Access restriction : The constructor BASE64Decoder() is not accessible due to restriction on required library C:\Program files\java\jre6\lib\rt.jar
*解決時要看jre的型別:
檢視工程properties->Java Build path->Libraries,雙擊System library檢視配置:
1、預設jre的型別是execution environment,rt.jar中的很多包都會因為jre與jdk許可權不同而導致被限定許可權,例如sun包。因為BASE64Encoder是sun公司的內部方法,並沒有在API中公開,所以使用這些方法是不安全的,因為可能會被更改。所以解決時應該使用替代的物件及方法:
如org.apache.commons.codec.binary.Base64類
官方地址:http://commons.apache.org/codec/
官方API:http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64.html
2、也可選擇Alternate JRE,用JDK替代jre。因為使用的是jdk的許可權,所以不會報這類的錯誤。