Эта ошибка (или предупреждение в более поздних версиях) возникает из-за компиляции в среде выполнения Java. Это отображается как JRE System library [CDC-1.0/Foundation-1.0]
в пути сборки вашего проекта Eclipse Java. Такие среды предоставляют только стандартный API Java вместо всех классов в среде выполнения. Это означает, что классы, используемые для реализации стандартного API Java, не предоставляются.
Вы можете разрешить доступ к этим конкретным классам, используя правила доступа, вы можете настроить Eclipse для непосредственного использования JDK или отключить ошибку. Однако вы бы скрывали серьезную ошибку, так как Внутренние классы Sun не должны использоваться (краткое объяснение см. Ниже).
Java содержит Base64
класс в стандартном API начиная с Java 1.8. Ниже приведен пример, как его использовать:
Оператор импорта Java 8:
import java.util.Base64;
Пример кода Java 8:
// create a byte array containing data (test)
byte[] binaryData = new byte[] { 0x64, 0x61, 0x74, 0x61 };
// create and configure encoder (using method chaining)
Base64.Encoder base64Encoder = Base64.getEncoder().withoutPadding();
// encode to string (instead of a byte array containing ASCII)
String base64EncodedData = base64Encoder.encodeToString(binaryData);
// decode using a single statement (no reuse of decoder)
// NOTE the decoder won't fail because the padding is missing
byte[] base64DecodedData = Base64.getDecoder().decode(base64EncodedData);
Если Java 8 недоступна, следует использовать такую библиотеку, как Кодек Apache Commons или Guava .
Не следует использовать внутренние классы Sun . Эти классы используются для реализации Java. У них есть публичные методы, позволяющие создавать экземпляры из других пакетов. Однако хорошая среда сборки должна защитить вас от их использования.
Использование внутренних классов может нарушить совместимость с будущими средами выполнения Java SE; реализация и расположение этих классов могут измениться в любое время. Настоятельно не рекомендуется отключать ошибку или предупреждение.