首页 文章

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

提问于
浏览
75

我正在尝试修改一些遗留代码,同时又出现以下类型的错误:

访问限制:由于对所需库的限制,无法访问Headers类型中的方法create(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;

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

任何人都能告诉我这个错误是什么以及我如何解决这个问题?

感谢您提前提供的帮助,

奥利

10 回答

  • 78

    我遇到类似的事情,我认为警告的原因是Eclipse试图阻止您使用作为工作区JRE的一部分安装但不属于公共Java API的内部 com.sun 软件包 .

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

    • 打开Java Build Path项目属性窗口的Libraries选项卡 .

    • 展开JRE系统库条目 .

    • 选择"Access rules"并点击“编辑”按钮 .

    • 单击结果对话框中的“添加”按钮 .

    • 对于新访问规则,将分辨率设置为“可访问”,将模式设置为 "com/sun/xml/internal/**" .

    添加此访问规则后,您的项目应在没有这些警告的情况下构建 .

  • 5

    优秀的答案已经提供现场here .

    请参阅以下摘要:

    • 转到项目属性中的“构建路径”设置 .

    • 删除JRE系统库

    • 加回来;选择"Add Library"并选择JRE系统库 . 默认对我有用 .

  • 125

    这不是一个真正的解决方案,但在我看来建议的解决方案的每个地方都只是告诉Eclipse那些不是错误 . 您可以通过转到属性 - > Java编译器 - >错误警告 - >不推荐使用和重新启动的API - >禁止引用(访问规则),将其从错误更改为警告或忽略来更改它 .

  • 41

    我通过以下步骤解决了这个问题:展开项目,右键单击“JRE系统库”>“属性”>选择“第三个选项”“工作区默认JRE”>“确定” . 希望它也能帮到你

  • 0

    In Eclipse:
    Project -> properties -> java Build Path -> libraries

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

    错误将被删除 .

  • 0

    当我的插件依赖于另一个项目时,我遇到了同样的问题,该项目在其清单文件中导出了一些包 . 我没有更改访问规则,而是通过在Export-Package部分添加所需的包来解决问题 . 这使得包装在法律上可见 . Eclipse实际上在“访问限制”错误标记上提供了此修复程序 .

  • -2

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

    • 点击eclipse菜单栏上方的Project .

    • 点击属性 .

    • 选择库,单击现有库,然后单击窗口右侧的“删除” .

    • 重复此过程,现在单击“添加库”,然后选择“JRE系统库”并单击“确定” .

  • 1

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

    • 产品文件的依赖项,

    • plugin.xml依赖项(并确保不使用导入的包对话框隐式导入它) .

    • 运行配置插件选项卡 . 运行方式..->运行配置 - >插件选项卡 . 取消选中旧插件,然后单击“添加必需的插件” .

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

  • 8

    我刚刚将项目方面更改为1.7并且工作正常 .

  • 15

    转到Buildpath

    删除现有JRE并添加包含Jdk1.6的新JRE库并完成立即清理所有项目并再次构建

    我想这样你就可以解决你的错误了

相关问题