如何在 Eclipse 中为 JavaFX 类 启用自动导入?
How to enable auto import in Eclipse for JavaFX classes?
我当前的 Eclipse 是 Oxygen.2 Release (4.7.2),还有 Java 9.0.1。基本上 Java 9 有效,尤其是自动导入有效(对于 "ordinary" 类 和包),但自动导入(和自动完成)不适用于 javafx.*
。如果我手动输入 import java
并按 Ctrl+Space,然后匹配包列表会在我可以看到的地方弹出javafx.*
层次结构。但是当我输入例如import javafx.stage
然后按 Ctrl+Space 它会自动添加 .*;
并且不显示任何 类 在包中。当我在方法主体的某处键入 Stage
并按 Ctrl+Space 时,没有任何建议。但是,当我键入添加导入(如 import javafx.stage.Stage
)时,代码会编译并运行。
关于如何修复自动完成和自动导入功能的任何线索(正如我所说,它适用于其他 类,例如 java.time.LocalDateTime
或许多其他人)。
javafx*
类 由于 访问规则 管理对系统包的访问,因此在代码完成期间被阻止。看着,例如,可以使用Eclipse bug 527353 the mechanism for dynamically computing the list of accessible packages had not been finalized in Eclipse Oxygen. As a result, only a static profile。该文件目前提到:
NOTE: The JavaSE-9 profile is not yet finalized.
由于根据 JEP 261 的动态计算包括 javafx
包 - 如果可用 - 我 认为 静态配置文件也应该列出这些包,或者完全依赖 JPMS 规则而放弃。
但是,您可以通过显式定义访问规则来避免此问题,该规则授予对
处的 javafx/**
的访问权限
Java Build Path > Libraries > JRE System Library > Access rules
.
我当前的 Eclipse 是 Oxygen.2 Release (4.7.2),还有 Java 9.0.1。基本上 Java 9 有效,尤其是自动导入有效(对于 "ordinary" 类 和包),但自动导入(和自动完成)不适用于 javafx.*
。如果我手动输入 import java
并按 Ctrl+Space,然后匹配包列表会在我可以看到的地方弹出javafx.*
层次结构。但是当我输入例如import javafx.stage
然后按 Ctrl+Space 它会自动添加 .*;
并且不显示任何 类 在包中。当我在方法主体的某处键入 Stage
并按 Ctrl+Space 时,没有任何建议。但是,当我键入添加导入(如 import javafx.stage.Stage
)时,代码会编译并运行。
关于如何修复自动完成和自动导入功能的任何线索(正如我所说,它适用于其他 类,例如 java.time.LocalDateTime
或许多其他人)。
javafx*
类 由于 访问规则 管理对系统包的访问,因此在代码完成期间被阻止。看着,例如,可以使用Eclipse bug 527353 the mechanism for dynamically computing the list of accessible packages had not been finalized in Eclipse Oxygen. As a result, only a static profile。该文件目前提到:
NOTE: The JavaSE-9 profile is not yet finalized.
由于根据 JEP 261 的动态计算包括 javafx
包 - 如果可用 - 我 认为 静态配置文件也应该列出这些包,或者完全依赖 JPMS 规则而放弃。
但是,您可以通过显式定义访问规则来避免此问题,该规则授予对
处的javafx/**
的访问权限
Java Build Path > Libraries > JRE System Library > Access rules
.