访问限制:由于对所需库的限制而无法访问.. \ jre \ lib \ rt.jar

我正试图修改一些遗留的代码,并得到以下types的错误:

访问限制:由于对所需库的限制,不能从types标题创build(JAXBRIContext,Object)方法.. \ jre \ lib \ rt.jar

对于这些导入语句:

import com.sun.xml.internal.bind.api.JAXBRIContext; import com.sun.xml.internal.ws.api.message.Header; import com.sun.xml.internal.ws.api.message.Headers; import com.sun.xml.internal.ws.developer.WSBindingProvider; 

一直在寻找这可能意味着什么,以及如何解决它,但无法find明确的答案。 有些post似乎暗示我有一些JAR包含了实现类,这些类现在可以作为Java核心发行版的一部分,但是据我所见,没有一个包含的JAR包含上述类的不同/旧版本。

任何人都可以告诉我这个错误是什么,以及我可以怎样去解决这个问题?

已经提前感谢您的帮助,

奥利

我碰到类似的东西,我想这个警告的原因是Eclipse试图阻止你使用作为工作空间JRE的一部分安装但不属于公共Java API的内部com.sun包。

正如Justin在他的回答中所说的,改变你的编译器设置可以隐藏警告。 更细粒度的方法是修改您的构buildpath以明确允许访问有问题的包:

  1. 打开Java Build Path项目属性窗口的Libraries选项卡。
  2. 展开JRE系统库条目。
  3. select“访问规则”,然后点击编辑button。
  4. 点击结果对话框中的添加button。
  5. 对于新的访问规则,请将分辨率设置为可访问,并将模式设置为"com/sun/xml/internal/**"

添加此访问规则后,您的项目应该build立没有这些警告。

这里已经提供了很好的答案。

请参阅下面的总结:

  1. 转到项目属性中的“生成path”设置。
  2. 删除JRE系统库
  3. 加回来; select“添加库”并selectJRE系统库。 默认为我工作。

不是一个真正的解决scheme,但我看到的解决schemebuild议只是告诉Eclipse,这些都不是错误。 您可以通过转到属性 – > Java编译器 – >错误警告 – >弃用和重新分配的API – >禁止引用(访问规则),将其从错误更改为警告或忽略。

我用这些步骤解决了这个问题:展开您的项目,右键单击“JRE System Library”> Properties>select第三个选项“Workspace default JRE”> OK。 希望它也能帮助你

在Eclipse中:
Project -> properties -> java Build Path -> libraries

删除现有的JRE系统库,然后Add Library -> JRE System library -> next -> ok

错误将被删除。

当我的插件取决于另一个项目时,我遇到了同样的问题,这个项目在清单文件中导出了一些包。 通过将所需的软件包添加到Export-Package部分,我设法解决了这个问题。 这使得包裹合法地可见。 Eclipse实际上在“访问限制”错误标记上提供了此修复。

在执行java程序的eclipse环境中,执行以下步骤:

  1. 点击eclipse中菜单栏上方的Project。
  2. 点击属性。
  3. select库,单击现有的库,然后单击窗口右侧的删除。
  4. 重复该过程,然后单击添加库,然后selectJRE系统库,然后单击确定。

我正在回答这个问题,因为我解决这个问题的方法不同于其他答案。 当我重构我正在导出的插件的名称时,我遇到了这个问题。 最终我必须确保修改/更改以下内容。

  1. 产品文件的依赖关系,
  2. plugin.xml依赖关系(并确保它不是使用导入的包对话框隐式导入的)。
  3. 运行configuration插件选项卡。 运行方式..->运行configuration – >插件选项卡。 取消选中旧插件,然后点击添加所需插件。

这对我有效,但你的里程可能会有所不同。

我只是改变了项目方面到1.7,它的工作。

转到Buildpath

删除现有的JRE并添加包含Jdk1.6的新JRE库并完成现在清理所有项目并重新构build

我认为这样你可以解决你的错误