如何在Eclipse中为JavaFX类启用自动导入?

Cro*_*max 2 java eclipse javafx java-9 javafx-9

我现在的Eclipse是Oxygen.2 Release(4.7.2),还有Java 9.0.1.基本上Java 9工作,特别是自动导入工作(对于"普通"类和包),但自动导入(和自动完成)不起作用javafx.*.如果我手动输入import java并按Ctrl+ Space,则弹出匹配包列表,我可以看到javafx.*层次结构.但是当我输入eg import javafx.stage并按Ctrl+时Space它会自动添加.*;并且不会显示包中的任何类.当我Stage在方法体中的某处键入并按Ctrl+时Space,没有任何建议.但是,当我键入添加导入(如import javafx.stage.Stage)时,代码编译并运行.

任何线索如何修复自动完成和自动导入功能(正如我所说,适用于其他类,例如java.time.LocalDateTime或许多其他类).

Ste*_*ann 8

javafx*由于访问规则控制对系统包的访问,因此在代码完成期间会阻止类.查看例如Eclipse bug 527353,动态计算可访问包列表的机制尚未在Eclipse Oxygen中完成.因此,只能使用静态配置文件.该文件目前提到:

注意:JavaSE-9配置文件尚未最终确定.

由于根据JEP 261的动态计算包括javafx包 - 如果可用 - ,我认为静态配置文件也应该列出那些,或者被放弃以支持完全依赖于JPMS规则.

你可以,但是,通过显式定义访问规则授予访问权限,以避免该问题javafx/**

Java Build Path > Libraries > JRE System Library > Access rules.