首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

解決 Eclipse 中 BASE64Decoder 存取限制錯誤

     編輯:Java 綜合教學

解決 Eclipse 中 BASE64Decoder 存取限制錯誤

問題描述

在 Eclipse 專案中使用 sun.misc.BASE64Decoder 或 BASE64Encoder 時,編譯器報錯:

Access restriction: The constructor BASE64Decoder() is not accessible due to restriction on required library

原因在於 JDK 的 rt.jar 中 sun.* 套件預設受存取限制,Eclipse 預設禁止專案直接引用這些內部 API。

解決方案

  1. 在專案上右鍵選擇 Properties → Java Build Path → Libraries 標籤。
  2. 展開 JRE System Library,選中後點擊 Remove 移除。
  3. 點擊 Add Library → JRE System Library → Next → 選擇 Workspace default JRE 或指定安裝的 JRE → Finish 重新加入。
  4. 專案將自動重新編譯,錯誤即可消失。

原理說明

重新加入 JRE System Library 會重置 Eclipse 對該庫的存取規則,移除對 sun.* 套件的預設禁止設定。此為 Eclipse 特有的編譯時檢查機制,運行時不受影響。

更佳替代方案 (建議)

避免直接依賴 sun.misc.* 內部類,改用標準 API 或成熟庫:

  • Java 8+: java.util.Base64 (標準庫,效能更好)。
  • Apache Commons Codec: org.apache.commons.codec.binary.Base64。
  • Google Guava: com.google.common.io.BaseEncoding。

範例 (Java 8):

// 編碼
String encoded = Base64.getEncoder().encodeToString("原文".getBytes(StandardCharsets.UTF_8));
// 解碼
byte[] decoded = Base64.getDecoder().decode(encoded);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved