Lex*_*con 78 java eclipse javafx java-8
当我在新的java 8项目中尝试使用与javafx相关的类时,我从eclipse中获得了访问限制错误.到目前为止,我能找到的唯一"解决方案"是告诉eclipse忽略访问限制,但我对此并不满意.错误的一个例子:
Access restriction: The type Pane is not accessible due to
restriction on required library C:\Program Files\Java\jre8_0\lib\ext\jfxrt.jar
Run Code Online (Sandbox Code Playgroud)
我正在使用Eclipse Kepler和Java 8的Eclipse JDT补丁.
这似乎是与JavaFX不是JavaSE执行环境的一部分有关的问题.
我现在很困惑,因为根据http://en.wikipedia.org/wiki/JavaFX,javaFX是JavaSE的一部分.是否有可能Eclipse没有认识到它是javaSE的一部分?
Jam*_*s_D 125
我将在这里再添加一个答案,只是为了提供我认为最简单的方法.在我的Eclipse设置中,我安装了e(fx)clipse,它为此提供了一个修复程序,并提供了许多有用的开发功能,如果您正在编写JavaFX应用程序,几乎肯定需要这些功能.这可能是最实用的方法.如果由于某种原因你不想要这个插件,这个答案中概述的解决方案将解决问题与其他副作用最少.
正如其他答案中所指出的,默认情况下,Eclipse不允许访问jre/lib/ext目录中jar文件中的类,因为这些不保证在所有Java平台上都存在.如果您正在编写JavaFX 8应用程序,那么假设您处于lib/ext位置中可用的jfxrt.jar的平台上.
因此,对此的最小修复是允许访问此jar文件中的类(并且仅在此jar文件中).要执行此操作,请右键单击项目并调出项目属性对话框.在左窗格中选择"构建路径",然后选择"库"选项卡.您将看到"JRE系统库"条目.展开该条目,您将看到"访问规则"子条目:
选择"访问规则"条目,然后单击"编辑".单击"添加".
在"解决方案"下,选择"可访问",然后在"规则模式"下输入javafx/**:
单击"确定"退出所有对话框.
此设置将允许访问任何包中的所有类 javafx.,但将保留所有其他类的ext文件夹上的规则,并且在这种意义上是"最小".
同样,您可能真正想要做的是安装e(fx)clipse插件,但据我所知,这是对Eclipse设置的副作用最小的解决方案.
tom*_*tom 63
从Eclipse的角度来看,错误是完全正确的,因为JavaFX来自扩展类路径,并且在所有Java8 VM上都不可用(例如ibm!).
如前所述,您可以通过添加访问规则或IMHO来抑制这些警告,最好的解决方案是安装e(fx)clipse,它会为您自动执行此操作,甚至为您提供JavaFX CSS和FXML的工具.
您可以从http://efxclipse.bestsolution.at/install.html获取一个整合的包
Tha*_*Van 10
简单的方法是安装e(fx)clipse - Eclipse的插件以支持JavaFX:
原始信息可以在这里找到:https://www.eclipse.org/efxclipse/install.html#for-the-lazy
小智 7
我通过仔细使用Eclipse项目的构建路径解决了这个问题.
这样做使Eclipse将jfxrt.jar视为常规的第三方JAR文件.顺序很重要,因此这优先于JRE系统库中的条目.它与实际的JAR文件相同,但Eclipse看到的却不同.
您可能希望更改任何运行配置,以便它不使用jfxrt.jar的"已导出"版本; 但实际上这并没有什么不同.
我用Java8和Eclipse Luna完成了这个; 但我相信校长可以使用Java和Eclipse的任何组合.
在图书馆下
注意:确保在Eclipse/Preferences(不是项目)/ Java/Installed JRE中,jdk指向JDK文件夹而不是JRE C:\ Program Files\Java\jdk1.8.0_74
| 归档时间: |
|
| 查看次数: |
85384 次 |
| 最近记录: |