Eclipse Oxygen中JavaFX类的访问限制

时间:2017-08-09 09:26:47

标签: java eclipse gradle buildship eclipse-oxygen

我在Ubuntu 17.04中使用Eclipse Oxygen 4.7.0和Oracle JDK 8u144。

引用包javafx.*中的JavaFX类的任何代码,例如javafx.application.Application被(错误地)报告为错误

Access restriction: The type 'ScrollPane' is not API (restriction on required library '/opt/jdk1.8.0_144/jre/lib/ext/jfxrt.jar')

这似乎与" Java系统库"有关。 JavaSE的-1.8。 jfxrt.jar有"访问规则"你可以在属性中查看 - > Java Build Path,它们只允许javax / ,java / ,org.w3c。*等,其中任何一个都不在jfxrt.jar中。

我可以用两种不同的方式解决这个问题

  • 更改偏好设置 - > Java - >编译器 - >错误和警告 - >弃用和受限制的API - >禁止参考(访问规则)不是错误。
  • 从" JavaSE-1.8"手动更改系统库到"工作区默认JRE"通过属性 - > Java构建路径 - > JRE系统库 - >编辑

这两种方法都不是理想的,因为我有大量的Eclipse项目要进行调整,并且更愿意禁用禁用的引用检查以捕获真正的错误。

请注意,通过Eclipse中包含的标准Gradle Import插件导入项目时,这也是一个问题。

是否有任何方法可以避免此问题,可能是通过Gradle配置,还是已修复的已知错误/功能?

1 个答案:

答案 0 :(得分:2)

这在Eclipse Bug 431067详细讨论。

除问题中的解决方法外,最简单的方法是安装e(fx)clipse插件 - https://www.eclipse.org/efxclipse/install.html

这有助于在JDK中自动配置必要的访问限制。