java - 访问限制 : Is not accessible due to restriction on required library . .\jre\lib\rt.jar

标签 java access-denied

我正在尝试修改一些旧代码,但出现以下错误:

访问限制:由于所需库..\jre\lib\rt.jar 的限制,无法访问类型 Headers 中的方法 create(JAXBRIContext, Object)

对于这些导入语句:

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 中没有一个包含上述类的不同/旧版本。

谁能告诉我这个错误是怎么回事以及如何解决这个问题?

提前感谢您的帮助,

奥利

最佳答案

我遇到了类似的情况,我认为警告的原因是 Eclipse 试图阻止您使用作为工作区 JRE 的一部分安装的内部 com.sun 包,但这些包是不是公共(public) Java API 的一部分。

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

  1. 打开 Java 构建路径项目属性窗口的库选项卡。
  2. 展开 JRE 系统库条目。
  3. 选择“访问规则”并点击“编辑”按钮。
  4. 在结果对话框中单击“添加”按钮。
  5. 对于新的访问规则,将分辨率设置为可访问,将模式设置为 "com/sun/xml/internal/**"

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

关于java - 访问限制 : Is not accessible due to restriction on required library . .\jre\lib\rt.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9266632/

相关文章:

java - 当你从 B 树中分割一个节点并且它的顺序是奇数时,如何均匀地分配键?

python - 为什么我在使用 mrjob 运行 python 文件时得到 "WindowsError [Error5] Access is denied"

MySQL 错误 1045 (28000) : Access denied for user 'bill' @'localhost' (using password: YES)

c# - System.UnauthorizedAccessException 未处理

docker - 从我拥有的存储库中提取 Docker 镜像时访问被拒绝

error-handling - HTTP 错误 403 : Forbidden: Access is denied

java - G1(垃圾收集器)什么时候开始运行,它首先收集哪个内存区域? java 8 上有哪些新的 GC 更新?

java - 强制执行类中的方法

java - 如何在不使用 IDE 的情况下调试 Java 程序?

Java、泛型、合并、比较