java去除访问限制,java-访问限制:由于对所需库.. \ jre \ lib \ rt.j的限制而无法访问...

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

我正在尝试修改一些旧代码,而又得到以下错误:

访问限制:由于必需的库.. \ jre \ lib \ rt.jar的限制,无法访问标头类型的方法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都不包含上述类的不同/旧版本。

任何人都可以告诉我该错误的全部原因以及如何解决此问题?

感谢您的事先帮助,

奥利

10个解决方案

125 votes

我遇到了类似的问题,我认为警告的原因是Eclipse试图劝阻您不要使用内部"com/sun/xml/internal/**"软件包,这些软件包是作为工作区JRE的一部分安装的,但不属于公共Java API的一部分。

就像Justin在回答中所说的那样,更改编译器设置会隐藏警告。 一种更细粒度的方法是修改您的构建路径,以明确允许访问有问题的软件包:

打开“ Java构建路径”项目属性窗口的“库”选项卡。

展开“ JRE系统库”条目。

选择“访问规则”,然后单击“编辑”按钮。

在出现的对话框中单击添加按钮。

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

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

Alex answered 2019-09-21T04:03:55Z

78 votes

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

请参阅以下摘要:

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

删除JRE系统库

加回去; 选择“添加库”,然后选择JRE系统库。 默认为我工作。

Abimbola answered 2019-09-21T04:04:47Z

41 votes

这不是一个真正的解决方案,但是在我看来,所建议的解决方案都是简单地告诉Eclipse这些不是错误。 您可以通过以下方法来更改它:属性-> Java编译器->错误警告->已弃用和改写的API->禁止引用(访问规则),将其从错误更改为警告或忽略。

Justin answered 2019-09-21T04:05:12Z

15 votes

我已经通过以下步骤解决了这个问题:展开项目,右键单击“ JRE系统库”>“属性”,然后选择第三个选项“ Workspace default JRE”>“确定”。 希望它也能帮助您

Candra answered 2019-09-21T04:05:37Z

8 votes

在Eclipse中:

Add Library -> JRE System library -> next -> ok

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

错误将被消除。

Bilal Ashraf answered 2019-09-21T04:06:21Z

5 votes

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

Val answered 2019-09-21T04:06:47Z

1 votes

在执行Java程序的Eclipse环境中,执行以下步骤:

在Eclipse菜单栏上方单击Project。

单击属性。

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

重复该过程,现在单击添加库,然后选择JRE系统库,然后单击确定。

Leleji Godwin answered 2019-09-21T04:07:40Z

0 votes

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

产品文件的依赖性,

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

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

这对我有用,但是您的里程可能会有所不同。

Lucas answered 2019-09-21T04:08:31Z

0 votes

我只是将Project Facet更改为1.7,它才起作用。

Magno C answered 2019-09-21T04:08:56Z

-2 votes

转到构建路径

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

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

DevArea answered 2019-09-21T04:09:36Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值