錯誤總結:Access restriction: The type ** is not accessible due to restriction on required library
阿新 • • 發佈:2018-12-12
來到新公司,下載程式碼檢視後發現有很多地方標紅報錯了. 仔細一看都是Access restriction: The type ** is not accessible due to restriction on required library型別的錯誤,這種錯誤的原因一般都是引用了jdk中非標準的類導致的. 例如:import sun.misc.BASE64Decoder;和import sun.misc.BASE64Encoder; 這兩個類都在sun.misc包下,在jdk提供的rt.jar中,但是非標準的JavaApi介面. 處理的一般方法有兩種: 方法1. 修改eclipse的錯誤級別設定: Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning sun.**包裡的類,在eclipse裡預設的級別是Error,修改為warning後錯誤即可消失。 方法2.自定義access rules 工程上右鍵->工程屬性->java builder path->Libraries標籤,點選JRE System Library裡面的Access rules,add sun/** 為accessible,見下圖