Eclipse对jfxrt.jar类的访问限制发出警告

时间:2014-07-14 18:10:53

标签: eclipse maven javafx java-8 eclipse-kepler

我使用eclipse kepler和java SE 1.8 jdk系统库但是当我使用任何javafx类或方法时,eclipse会发出类似Access restriction: The type 'TableColumn<?,?>' is not API (restriction on required library 'C:\Program Files\Java\jdk1.8.0_05\jre\lib\ext\jfxrt.jar')的警告。

我尝试将访问规则添加到系统库,以允许使用通配符*访问库中的所有jar,但警告仍然存在。我也使用maven建设项目。 代码有效,但警告是唠叨,并且在我编码时影响可读性。任何帮助表示赞赏。

编辑:我也尝试在课程开头添加@SuppressWarnings("restriction"),但这仍然无法解决未知原因并隐藏我可能需要查看的所有其他限制警告

5 个答案:

答案 0 :(得分:30)

我可以通过重新配置Java库来解决这个问题。例如,明确选择Oracle JDK就可以了。

Configure Build Path

Edit Java lib

Select explicit JDK

答案 1 :(得分:7)

简单的方法是安装e(fx)clipse - Eclipse的插件以支持JavaFX:

  1. 选择帮助 - &gt;安装新软件
  2. 单击“添加”按钮添加以下站点:
  3. 点击确定
  4. 在&#34;使用&#34;下拉列表,选择最近添加的网站&#34; efxclipse&#34;
  5. 选中复选框&#34; e(fx)clipse - install&#34;安装此选择的所有组件
  6. 转到后续步骤以完成安装
  7. 重新启动Eclipse。如果它仍然无法识别JavaFX库,请重新启动它。
  8. 原始信息可在此处找到:https://www.eclipse.org/efxclipse/install.html#for-the-lazy

答案 2 :(得分:4)

您可以在以下设置中选择ignore

Windows -> Preferences -> Java -> Compiler -> Errors/Warnings
(Project) Properties -> Java Compiler -> Errors/Warnings

使用过滤器查找"Forbidden reference"

Forbidden reference (access rules):将其更改为&#34; ignore&#34;

enter image description here

答案 3 :(得分:3)

添加访问规则以允许访问javafx/**

另见答案:https://stackoverflow.com/a/32062263/1060350

就我所知,我认为这是Eclipse中的一个错误。我也找不到在Eclipse中全局配置它的方法,但是你需要为每个项目重做它。

导航到项目设置,构建路径,库,JRE。点击“访问规则”,通常应该“没有规则定义”。添加新规则:“可访问”,然后输入模式“javafx/**”。

这告诉Eclipse Java编译器javafx.*是允许使用的官方API,因此警告就会消失。

显然,仅允许访问javafx比忽略警告要好得多。

*不起作用的原因是因为您没有读取通配符定义。在访问规则中,*只匹配一次,您需要**才能在任何深度匹配。即*将允许访问javafx.SomeClass但不能访问javafx.scene.SomeClass ...

答案 4 :(得分:2)

javafx添加访问规则。

右键单击您的项目&gt;属性&gt; Java构建路径&gt; “库”选项卡,然后:

  • 展开JRE系统库
  • 选择访问规则,然后点击Edit...按钮
  • 点击Add...
  • 选择分辨率:Accessible
  • 设置规则模式:javafx/**
  • 点击OK
  • 点击OK

add access to lib for jfxrt