Zugriffsbeschränkung: Auf den Typ BASE64Encoder kann aufgrund einer Einschränkung nicht zugegriffen werden

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.

eclipse-access-rules-error

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);