5

我在带有 Oracle JDK 8u144 的 Ubuntu 17.04 中使用 Eclipse Oxygen 4.7.0。

任何在包中引用 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 System Library”JavaSE-1.8 有关。jfxrt.jar您可以在 Properties -> Java Build Path 中查看“访问规则”,这些规则仅允许 javax/ 、java/、 org.w3c.* 等,甚至在jfxrt.jar.

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

  • 更改首选项 -> Java -> 编译器 -> 错误和警告 -> 已弃用和限制的 API -> 禁止参考(访问规则)不会出错。
  • 通过 Properties -> Java Build Path -> JRE System Library -> Edit 手动将系统库从“JavaSE-1.8”更改为“Workspace default JRE”

这些方法都不是理想的,因为我有大量的 Eclipse 项目需要调整,并且希望禁用的引用检查被启用以捕获真正的错误。

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

有没有办法避免这个问题,也许是通过 Gradle 配置,或者是一个已知的错误/功能将被修复?

4

1 回答 1

3

这在Eclipse Bug 431067中有详细讨论。

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

这可以在 JDK 中自动配置必要的访问限制。

于 2017-08-29T06:29:49.680 回答