带有JSR 250(注释)的Eclipse会产生“访问限制”错误

时间:2010-03-08 22:50:12

标签: java eclipse annotations

希望有人之前遇到过此事。我正在运行Spring STS 2.3.0,当尝试使用来自javax.annotations.Resource的@Resource注释时,我得到“访问限制:由于对所需库的限制,无法访问类型资源”。我正在使用JDK 6u18。

我尝试将JDK Compliance更改为1.5和1.6,并且两者都产生相同的错误。

干杯, -Ed

6 个答案:

答案 0 :(得分:8)

这对我有用:改变eclipse(STS)项目构建路径|库选项卡|选择JRE系统库[J2SE-1.4] |编辑按钮|从执行环境单选按钮更改为J2SE 1.4(jdk1.6.0_21)到Workspace默认JRE(jdk1.6.0_21)。

答案 1 :(得分:2)

如果您使用的是Plug-in Project而不是常规Java项目,请尝试设置

Bundle-RequiredExecutionEnvironment: JavaSE-1.6
你的manifest.mf中的

。 (更改后,您可能需要右键单击项目并执行PDE工具 - >更新类路径

答案 2 :(得分:0)

您可以在已弃用和受限制的API部分中将配置的编译器错误更改为警告或忽略:禁止引用(访问规则)。

答案 3 :(得分:0)

Eclipse应该告诉你它遇到问题的库(比如,X)。这样的事情正在发生:

  • Spring STS依赖于库X的版本V 1
  • 其他东西也依赖于库X的版本V 2 (其中V 1 != V 2 )。

现在,您对同一个库具有传递依赖关系,但是您的类路径中有两个不同的版本。这是不允许的。解决方案是从类路径中删除内容,而是将特定库添加到Eclipse构建路径中。

答案 4 :(得分:0)

您可以打开.classpath文件并使用

<\classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/
        org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>

代替。

答案 5 :(得分:0)

感谢您的回答。也为我工作。

原始问题是: 使用@Resource时显示访问限制警告。

解决问题的步骤: 构建路径 - &gt;配置构建路径 - &gt; libraries-&gt;选择JRE系统库 - &gt;编辑 - &gt;选择工作区默认值。