在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