Zugriffsbeschränkung: Auf den Typ BASE64Encoder kann aufgrund von Einschränkungen nicht zugegriffen werden
Problem
Habe ein Java-Beispiel vonAlexa API on Amazon service heruntergeladen, es in Eclipse importiert, kann es jedoch nicht kompilieren und trifft auf folgende "Access restriction" -Fehler:
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);
Lösung
Die Verwendung des Paketssun.*
ollte vermieden werden. Lesen Sie dieses Paketstatement.
Wenn Siesun.misc.BASE64Encoder
verwenden möchten, klicken Sie in Eclipse mit der rechten Maustaste auf das Projekt, Eigenschaften → Java-Compiler -> Fehler / Warnungen -> Veraltete und eingeschränkte API -> Verbotene Referenz (Zugriffsregeln). Ändern Sie die Standardeinstellung „Error “bis„Warning “. Jetzt sollte Ihr Code kompiliert werden können, jedoch mit einigen Warnmeldungen.
Die obige Lösung wird nicht empfohlen. Sie solltensun.misc.BASE64Encoder
durch andere BASE64-Klassen wieApache common codec ersetzen.
import org.apache.commons.codec.binary.Base64; //... result = new Base64().encodeToString(rawHmac);