我在Eclipse中收到此错误消息:
Access restriction: The type DirectoryWalker is not accessible
due to restriction on required library
/Library/Java/Extensions/commons-io-1.4.jar
这是什么意思?同一主题有this other SO question但在这种情况下似乎不适用。我不是在创建一个新的java类,我正在尝试使用它。
答案 0 :(得分:76)
转到java构建路径,在“库”选项卡下,删除JRE系统库。然后再次添加库 - > JRE系统库
为我工作
答案 1 :(得分:13)
这是我最不喜欢的错误,我已经碰到了几次,而且“对所需库的限制”只是让你感到愚蠢。但是,它很容易修复。
最快的方法(我正在使用Helios)是转到Window-> Preferences-> Java-> Compiler-> Errors / Warnings,找到并打开“Deprecated and Restricted API”项目符号,设置Forbidden and Discouraged引用除Error之外的其他内容。
“警告”通常是最好的,因为Java领域的东西正在触发这个,你可能想要一个脚注。 @SuppressWarnings及其表兄弟,98%的时间,对程序员的个人和社交逻辑都有同样的影响,比如,一个以太狂欢可能。但那只是我的拙见。
祝你好运!
答案 2 :(得分:6)
猜测你正在使用的另一个库也需要Apache Commons I / O,但需要不同的版本。拥有一段代码(可传递地)可以访问相同包的两个版本有点棘手。您可以安排它,以便您的代码和其他库使用相同的版本。使用CLASSPATH会更容易! :)
答案 3 :(得分:4)
对于它的价值,我最近也有这个错误(不同的库)。
我的IDE(MyEclipse)引用某个库作为整个项目类路径的一部分,但我在我的机器的Java扩展文件夹中也有相关JAR的副本。
由此产生的冲突给出了您所经历的(无益的)错误。因此,对于遇到此错误的其他人,您可能也想考虑类路径。
答案 4 :(得分:3)
项目构建路径设置 - > “库”选项卡 - >选择JRE系统库 - >编辑按钮 - >从执行环境单选按钮更改为J2SE 1.x(jdk1.6.0_21)到工作区默认JRE(jdk1.6.0_21)[收集]
这是最好的解决方案!
答案 5 :(得分:1)
我遇到了同样的错误,我修复的方法是将默认工作区JRE设置为与项目相同,我为工作区设置了JRE6,为项目设置JRE7设置了JRE7修复了问题
答案 6 :(得分:0)
如果你正在使用m2eclipse,我发现“更新项目配置”修复了它。
右键单击该项目,选择 Maven>更新项目配置并给它几秒钟。
答案 7 :(得分:0)
在我的情况下,我能够通过取消文件夹属性' 只读'来解决这个问题。在项目文件夹的属性中。
然后,我重新配置了项目的构建路径,然后清理。
它解决了错误。
答案 8 :(得分:0)
对于那些为什么Eclipse可以构建项目的人,但Maven不能,检查你是否有JUnit作为库,或者作为插件依赖。如果它被添加为库,Maven将无法获取它并抛出许多访问限制(类型xyz不是API)。