Restriction d'accès: le type BASE64Encoder n'est pas accessible en raison d'une restriction
Problème
Téléchargé un échantillon Java à partir deAlexa API on Amazon service, l'importe dans Eclipse, mais impossible de compiler et rencontre les erreurs «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);
Solution
L'utilisation du packagesun.*
doit être évitée, lisez cestatement.
Si vous insistez pour utilisersun.misc.BASE64Encoder
, dans Eclipse, faites un clic droit sur le projet, propriétés → Compilateur Java -> Erreurs / Avertissements -> API obsolète et restreinte -> Référence interdite (règles d'accès), changez la valeur par défaut «Error ”à“Warning “. Maintenant, votre code devrait pouvoir être compilé, mais avec quelques messages d'avertissement.
La solution ci-dessus n'est pas recommandée, vous devez remplacersun.misc.BASE64Encoder
par une autre classe BASE64 commeApache common codec.
import org.apache.commons.codec.binary.Base64; //... result = new Base64().encodeToString(rawHmac);