我在带有 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 配置,或者是一个已知的错误/功能将被修复?