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

     2023-02-26     208

关键词:

【中文标题】访问限制:由于对所需库 ..\\jre\\lib\\rt.jar 的限制,无法访问【英文标题】:Access restriction: Is not accessible due to restriction on required library ..\jre\lib\rt.jar访问限制:由于对所需库 ..\jre\lib\rt.jar 的限制,无法访问 【发布时间】:2012-03-05 05:10:31 【问题描述】:

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

访问限制:由于所需库..\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 中没有一个包含上述类的不同/旧版本。

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

提前感谢您的帮助,

奥利

【问题讨论】:

Access restriction on class due to restriction on required library rt.jar? 的可能重复项 【参考方案1】:

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

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

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

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

【讨论】:

嗯,奇怪的对我不起作用,但那是在 RAD 8 中而不是 Eclipse... 下面的一个当然可以工作,但莫名其妙(只需添加/删除 JRE) +1 用于添加特定的访问规则 - 而不是禁用所有警告。你摇滚! 我是另一个满意的客户。谢谢你! 可以保存这个设置吗? @Hervian 这就是警告的重点——这些课程随时可能发生变化。如果可能的话,您应该避免使用这些内部类,转而使用公共 API。也就是说,它们中的许多都是 OpenJDK 的一部分,并且多年来一直没有改变,所以......这是你的判断。【参考方案2】:

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

请参阅下面的摘要:

    转到项目属性中的构建路径设置。 删除 JRE 系统库 添加回来;选择“添加库”并选择 JRE 系统库。默认值对我有用。

【讨论】:

从较旧的 jdk 更新后为我工作。 谢谢!在 Eclipse Kepler 上为我工作。将 Jetty 9 发行版中的 servlet-api-3.1.jar 包含到我的项目中显然会导致问题。或者也许它是 run jetty run 插件。哦,好吧,只要它有效.. @AdityaSingh 这很有效,因为您在不同的 jar 文件中有多个类。删除和重新添加 JRE 库将使正确的类成为第一。如果您想要一个基本解决方案,请确保排除具有相同类的 jar 文件。请参考this问题的已接受答案。【参考方案3】:

不是一个真正的解决方案,但我所看到的解决方案建议只是简单地告诉 Eclipse 这些不是错误。您可以通过转到 Properties --> Java Compiler --> Errors Warnings --> Deprecated and restrited APIs --> Forbidden reference (access rule),将其从 Error 更改为 Warning 或 Ignore 来更改它。

【讨论】:

这也有效!最简单的事情似乎是要么这样做,要么按照@Abimbola 的建议添加/删除。 也为我工作,但我不得不想知道为什么首先出现警告。【参考方案4】:

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

【讨论】:

顺便说一句,每次执行 Maven 时都会重置 > 更新以防您使用 Maven 并且未设置:例如 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>【参考方案5】:

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

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

错误将被删除。

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

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

    单击 Eclipse 中菜单栏上方的 Project。 单击属性。 选择库,单击现有库,然后单击窗口右侧的删除。 重复该过程,现在单击添加库,然后选择 JRE 系统库并单击确定。

【讨论】:

【参考方案8】:

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

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

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

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

转到构建路径

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

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

【讨论】:

由于对所需库的限制,JFrame 受到限制 [重复]

】由于对所需库的限制,JFrame受到限制[重复]【英文标题】:JFrameRestrictedduetorestrictiononrequiredlibrary[duplicate]【发布时间】:2014-08-2707:33:21【问题描述】:我正在Eclipse中创建一个新的Java项目。唯一的问题是,我什至没有输入5行代... 查看详情

错误:访问限制:“数据源”类型不是 API(对所需库的限制 ..\rt.jar)[重复]

】错误:访问限制:“数据源”类型不是API(对所需库的限制..\\\\rt.jar)[重复]【英文标题】:Error:Accessrestriction:Thetype\'DataSource\'isnotAPI(restrictiononrequiredlibrary..\\rt.jar)[duplicate]错误:访问限制:“数据源”类型不是API(对所需库... 查看详情

访问限制:“应用程序”类型不是 API(对所需库 rt.jar 的限制)

】访问限制:“应用程序”类型不是API(对所需库rt.jar的限制)【英文标题】:Accessrestriction:Thetype\'Application\'isnotAPI(restrictiononrequiredlibraryrt.jar)【发布时间】:2014-10-0301:45:44【问题描述】:代码如下:packagemscontroller;importjavax.swin... 查看详情

javaswing在debian9.2中不起作用

...vaEclipse和JDK。当我创建JFrame时,会发生一些错误,例如:访问限制:由于对所需库的限制,无法访问构造函数EmptyBorder(int,int,int,int)/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar有关如何解决问题的任何想法?答案检查Eclipse中该项... 查看详情

访问限制:由于所需库 /opt/java/ 的限制,无法访问类型 JFrame

】访问限制:由于所需库/opt/java/的限制,无法访问类型JFrame【英文标题】:Accessrestriction:ThetypeJFrameisnotaccessibleduetorestrictiononrequiredlibrary/opt/java/error【发布时间】:2015-10-1320:50:30【问题描述】:我已经在网上搜索了这个问题,并... 查看详情

导入包但出现访问限制类型错误

】导入包但出现访问限制类型错误【英文标题】:importthepackagebutgotAccessrestrictiontypeerror【发布时间】:2018-02-0901:54:49【问题描述】:我已经导入了importjavafx.application.Application;和importjavafx.scene.Scene;我收到类似的错误消息访问限制... 查看详情

“受限库”在 Java 中的真正含义是啥?

...这本书是从2001年开始的,Eclipse在某些行上告诉我诸如“访问限制:JPEGImageEncoder类型由于对所需库/us 查看详情

编译器错误“无法读取所需库的存档” - Spring Tool Suite

...发环境,我正在使用SpringToolSuite2.8.1和m2E1.01。据我所知,由于这是一个Maven项目(我的 查看详情

htmlbackbonejs模板(所需库的cdn链接)(代码片段)

查看详情

如何让 Leiningen 下载所需库的源代码?

】如何让Leiningen下载所需库的源代码?【英文标题】:HowdoImakeLeiningendownloadthesourceofarequiredlibrary?【发布时间】:2013-01-0122:56:54【问题描述】:我认为project.clj中有一些选项,但我没有在Leiningen的文档中找到它。例如我有这个projec... 查看详情

无法读取所需库的存档或不是有效的 ZIP 文件

】无法读取所需库的存档或不是有效的ZIP文件【英文标题】:archiveforrequiredlibrarycouldnotbereadorisnotavalidZIPfile【发布时间】:2013-10-3119:22:55【问题描述】:在解决这个问题之前,让我解释一下我做了什么让我陷入了这个问题。我在g... 查看详情

linuxjava环境变量设置

下载JRE或者JDK后解压,设置以下环境变量 JAVA_HOME=/home/zm/jdk1.8.0_181JRE_HOME=/home/zm/jdk1.8.0_181/jreCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PAT 查看详情

自动化构建平台

1、jdk环境JAVA_HOME=/usr/local/jdk1.8.0_191JRE_HOME=$JAVA_HOME/jreCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$PATH:$JAVA_HOME/binexportPATHJAVA_HOMECLASSPATH 查看详情

类加载器

...1)BootstrapClassLoader(启动类加载器)Bootstrap类加载器–JRE/lib/rt.jar(开发时候用的核心类)2)ExtensionClassLoader(标准扩展类加载器)Extension类加载器–JRE/lib/ext或者java.ext.dirs指向的目录(扩展包)3)AppCl 查看详情

java示例代码_当用户只想打印使用情况时,避免对所需选项使用ParserException

java示例代码_当用户只想打印使用情况时,避免对所需选项使用ParserException 查看详情

由于 CORS 访问限制,MediaElementAudioSource 输出零

】由于CORS访问限制,MediaElementAudioSource输出零【英文标题】:MediaElementAudioSourceoutputszeroesduetoCORSaccessrestrictions【发布时间】:2015-09-1400:41:38【问题描述】:<script>//Createanewinstanceofanaudioobjectandadjustsomeofitspropertiesvar 查看详情

由于 CORS 访问限制,MediaElementAudioSource 输出零

】由于CORS访问限制,MediaElementAudioSource输出零【英文标题】:MediaElementAudioSourceoutputszeroesduetoCORSaccessrestrictions【发布时间】:2017-02-1011:07:30【问题描述】:我有一个指向亚马逊s3上的mp3的链接(awsmp3设置为公开)音频播放器运行... 查看详情

centosjdk+tomcat

配置环境centos将JAVA包解压到任意目录配置变量vim/etc/proflie exportJAVA_HOME=/usr/java/jdk_1.7.0_21exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportPATH=$PATH:$JAVA_H 查看详情