錯誤信息:Access restriction: the type * is not accessible due to restriction on required library *.jar
Access restriction:The method * is not accessible due to restriction on required library *.jar
原因分析:Eclipse環境下,項目中導入某些JAR,使用這些JAR中的某些API。結果出現Access restriction錯誤
Access restriction的原因是因爲這些JAR默認包含了一系列的代碼訪問規則(Access Rules),如果代碼中引用了這些訪問規則所禁止引用類,可能是標記棄用或者其他訪問權限問題,那麼就會提示這個錯誤信息。
解決方案:
1.既然存在訪問規則,那麼修改訪問規則即可。打開項目的Build Path Configuration頁面,展開報錯的JAR包或者目錄,選中Access rules條目,選擇右側的編輯按鈕,添加一個訪問規則即可。
2.修改[Project] -> Properties -> Java Build Path -> Libraries -> Remove JRE System Library
3.網上的另外一種解決方案:Window - preference - Java - Compiler - Errors/Warnings界面的Deprecated and restricted API下。把Forbidden reference (access rules): 的規則由默認的Error改爲Warning。
ps.這種方案是修改整個Eclipse開發環境,將所有禁止訪問的引用由原來的Error(默認)修改爲Warning。這種規避方式比較粗暴,個人支持第一種方案。