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

2022-08-31 13:03:54

我正在尝试修改一些遗留代码,并得到以下类型的错误:

访问限制:由于对所需库的限制,无法访问 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,这些JAR实现了现在作为核心Java发行版的一部分提供的类,但据我所知,我所包含的JAR中没有一个包含上述类的不同/旧版本。

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

感谢您的帮助已经提前,

奥利


答案 1

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

正如 Justin 在他的答案中所说,更改编译器设置可以隐藏警告。一种更细粒度的方法是修改构建路径,以显式允许访问相关包:

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

添加此访问规则后,生成项目时应不显示这些警告。


答案 2

优秀的答案已经在这里现场提供。

请参阅下面的摘要:

  1. 转到项目属性中的“生成路径”设置。
  2. 删除 JRE 系统库
  3. 重新添加;选择“添加库”,然后选择 JRE 系统库。默认值对我有用。

推荐