我无法让 IntellJ 识别 JavaFX 包。使用 OpenJDK 11 的新 JavaFX 项目,在尝试构建项目时,IntelliJ 无法识别 JavaFX 包。
我已经从 Maven 存储库中导入了 openjfx:javafx-base-11
。
我查看了其他问题,解决方案似乎包括检查字节码是否处于正确的级别(我的是),以及项目语言是否正确(我的是)。
有人有想法么?
编辑:
错误:
原文由 AlwaysNeedingHelp 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如评论中提到的, 入门指南 是从 Java 11 和 JavaFX 11 开始的地方。
像您在 Java 11 之前所做的那样工作的关键是要了解:
JavaFX 项目
如果您在 IntelliJ(没有 Maven 或 Gradle)中创建常规 JavaFX 默认项目,我建议您从 此处 下载 SDK。请注意,也有 jmod,但对于非模块化项目,SDK 是首选。
这些是运行默认项目的简单步骤:
/Users/<user>/Downloads/javafx-sdk-11/lib/
。完成此操作后,您会注意到 JavaFX 类现在已在编辑器中识别。--module-path /Users/<user>/Downloads/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.fxml
马文
如果您使用 Maven 构建您的项目,请按照以下步骤操作:
完成此操作后,您会注意到 JavaFX 类现在已在编辑器中识别。
您会注意到 Maven 为您管理所需的依赖项:它将为 javafx.controls 添加 javafx.base 和 javafx.graphics,但最重要的是,它将根据您的平台添加所需的 _分类器_。就我而言,Mac。
这就是为什么你的 jars
org.openjfx:javafx-controls:11
是 空 的,因为有三个可能的分类器(windows、linux 和 mac 平台),它们包含所有的类和本机实现。如果您仍然想转到 .m2 存储库并手动从那里获取依赖项,请确保选择正确的(例如
.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-mac.jar
)用 这里 的那些替换默认的 Maven 插件。
运行
mvn compile javafx:run
,它应该可以工作。Gradle 项目也有类似的工作,如在 此处 详细解释的那样。
编辑
提到的入门指南包含 IntelliJ 的更新 文档 和示例项目:
没有 Maven/Gradle 的 JavaFX 11,请参阅 非模块化示例 或 模块化示例 项目。
带有 Maven 的 JavaFX 11,请参阅 非模块化示例 或 模块化示例 项目。
带有 Gradle 的 JavaFX 11,请参阅 非模块化示例 或 模块化示例 项目。