由于对所需库的限制而对类进行访问限制

时间:2009-07-07 01:11:04

标签: java eclipse

我在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类,我正在尝试使用它。

9 个答案:

答案 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)。