Ограничение доступа: тип BASE64Encoder недоступен из-за ограничения
проблема
Загрузил образец Java изAlexa API on Amazon service, импортирует его в Eclipse, но не может скомпилировать и выдает следующие ошибки «Access restriction»:
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
P.S Using JDK 1.6 and Eclipse IDE 4.2
import sun.misc.BASE64Encoder; // Access restriction error //... result = new BASE64Encoder().encode(rawHmac);
Решение
Следует избегать использования пакетаsun.*
, прочтите этотstatement.
Если вы настаиваете на использованииsun.misc.BASE64Encoder
, в Eclipse щелкните правой кнопкой мыши проект, свойства → Компилятор Java → Ошибки / предупреждения → Устаревший и ограниченный API → Запрещенная ссылка (правила доступа), измените значение по умолчанию “Error »до«Warning ». Теперь ваш код должен компилироваться, но с некоторыми предупреждающими сообщениями.
Вышеупомянутое решение не рекомендуется, вам следует заменитьsun.misc.BASE64Encoder
другим классом BASE64, напримерApache common codec.
import org.apache.commons.codec.binary.Base64; //... result = new Base64().encodeToString(rawHmac);