アクセス制限:タイプBASE64Encoderは制限のためアクセスできません
問題
Alexa API on Amazon serviceからJavaサンプルをダウンロードし、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
をApache common codecなどの他のBASE64クラスに置き換える必要があります。
import org.apache.commons.codec.binary.Base64; //... result = new Base64().encodeToString(rawHmac);