错误信息: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。这种规避方式比较粗暴,个人支持第一种方案。