在JRE 8中使用JavaFX

当试图在我的新的java 8项目中使用javafx相关的类时,我从eclipse中得到访问限制错误。 到目前为止,我唯一能找到的'解决方案'是让eclipse忽略访问限制,但我对此并不满意。 错误的一个例子:

Access restriction: The type Pane is not accessible due to 
restriction on required library C:Program FilesJavajre8_0libextjfxrt.jar

我正在使用Eclipse Kepler和Java JDK的Eclipse JDT补丁。

这似乎与JavaFX不属于JavaSE执行环境的一部分有关。

根据http://en.wikipedia.org/wiki/JavaFX,我现在很困惑,javaFX是JavaSE的一部分。 Eclipse有没有可能认识到它是javaSE的一部分?


从Eclipse的角度来看,错误是完全正确的,因为JavaFX来自扩展类路径,并且不适用于所有Java8 VM(例如ibm!)。

如上所述,您可以通过添加访问规则或恕我直言禁止这些警告,最好的解决方案是安装e(fx)clipse,它可以为您自动执行此操作,甚至为您提供JavaFX CSS和FXML的工具。

你可以从http://efxclipse.bestsolution.at/install.html获取一个包


我将在此添加一个更多答案,以提供我认为是最简单的方法。 在我的Eclipse设置中,我安装了e(fx)clipse,它为此提供了一个修补程序,并提供了许多有用的开发功能,如果您正在编写JavaFX应用程序,那么几乎可以肯定需要这些功能。 这可能是最实际的方法。 如果由于某种原因,您不需要该插件,则此答案中概述的解决方案将以最少量的其他副作用解决问题。

正如在其他答案中指出的,默认情况下,Eclipse不允许访问jre / lib / ext目录中jar文件中的类,因为这些不能保证在所有Java平台上都存在。 如果您正在编写JavaFX 8应用程序,那么假设您位于lib / ext位置中可用的jfxrt.jar平台上。

所以最小的修复方法是允许访问这个jar文件中的类(并且只能在这个jar文件中)。 为此,请右键单击该项目并打开项目属性对话框。 在左侧窗格中选择“Build Path”,然后选择“Libraries”选项卡。 您将看到一个“JRE系统库”条目。 展开该条目,您将看到一个“访问规则”子条目:

在这里输入图像描述

选择“访问规则”条目并点击“编辑”。 点击“添加”。

在这里输入图像描述

在“解决方案”下,选择“可访问”,然后在“规则模式”下输入javafx/**

在这里输入图像描述

单击确定以退出所有对话框。

该设置将允许访问javafx.开始的任何包中的所有类javafx. ,但是会保留所有其他类的ext文件夹的规则,并且在这个意义上是“最小的”。

再一次,你可能真正想要做的是安装e(fx)clipse插件,但据我所知,这是对Eclipse设置最小副作用的解决方案。


我通过删除JDK并将其读取到构建路径来解决问题。 不过,不要问我为什么会这样。

链接地址: http://www.djcxy.com/p/65925.html

上一篇: Using JavaFX in JRE 8

下一篇: Looking for a JavaFX timeline chart