由于对所需库的限制而导致对类的访问限制

我在Eclipse中收到此错误消息:

Access restriction: The type DirectoryWalker is not accessible due to restriction on required library /Library/Java/Extensions/commons-io-1.4.jar 

这是什么意思? 关于同一主题还有其他SO问题 ,但在这种情况下似乎并不适用。 我不是在创建一个新的java类,我正在尝试使用它。

猜测你正在使用的另一个库也需要Apache Commons I / O,但需要不同的版本。 拥有一段代码(可传递地)可以访问相同包的两个版本有点棘手。 您可以安排它,以便您的代码和其他库使用相同的版本。 使用CLASSPATH会更容易! 🙂

转到java构建路径,在Library选项卡下,删除JRE System Library。 然后再次添加库 – > JRE系统库

为我工作

这是我最不喜欢的错误,我已经碰到了几次,而且“对所需库的限制”只是让你感到头昏眼花。 但是,它很容易修复。

最快的方式(我正在使用Helios)是转到Window-> Preferences-> Java-> Compiler-> Errors / Warnings,找到并打开“Deprecated and Restricted API”项目符号,并设置Forbidden and Discouraged Reference to something除了错误。

“警告”通常是最好的,因为Java领域的东西正在触发这个,你可能想要一个脚注。 @SuppressWarnings及其表兄弟,98%的时间,对程序员的个人和社交逻辑产生同样的影响,比如,一个以太狂欢可能。 但这只是我的谦虚分析。

祝你好运!

对于它的价值,我最近也有这个错误(不同的库)。

我的IDE(MyEclipse)引用某个库作为整个项目类路径的一部分,但我在我的机器的Java扩展文件夹中也有相关JAR的副本。

由此产生的冲突给出了您所经历的(无益的)错误。 因此,对于遇到此错误的其他人,您可能也想考虑您的类路径。

项目构建路径设置 – >库选项卡 – >选择JRE系统库 – >编辑按钮 – >从执行环境单选按钮更改为J2SE 1.x(jdk1.6.0_21)到工作区默认JRE(jdk1.6.0_21)[收集] ]

这是最好的解决方案!

我有同样的错误,我修复的方式是将默认工作区JRE设置为与项目相同,我有JRE6用于工作区,JRE7用于项目设置JRE7修复了问题

如果您正在使用m2eclipse,我发现“更新项目配置”修复了它。

右键单击该项目,选择Maven>更新项目配置并给它几秒钟。

在我的例子中,我能够通过在项目文件夹的属性中取消文件夹属性“ 只读 ”来解决这个问题。

然后,我重新配置了项目的Build路径 ,然后是Clean

它解决了错误。

对于那些为什么Eclipse可以构建项目但Maven不能构建项目的人,请检查您是将JUnit作为库还是作为插件依赖项。 如果它被添加为库,Maven将无法获取它并抛出许多访问限制(类型xyz不是API)。