我在让IntellJ识别JavaFX包时遇到了问题。对于新的JavaFX项目和OpenJDK 11,当尝试构建该项目时,IntelliJ无法识别JavaFX包。
我已经从Maven导入了openjfx:javafx-base-11
。
我已经研究过其他问题,解决方案似乎包括检查字节码是否处于正确的级别(我的是),以及项目语言是否正确(我的是)。
有谁有什么想法吗?
编辑:
错误:
发布于 2018-09-24 04:49:33
正如评论中提到的,Starting Guide是从Java11和JavaFX 11开始的地方。
要像Java 11之前那样工作,关键是要理解这一点:
JavaFX项目
如果您在IntelliJ中创建了一个常规的JavaFX默认项目(没有Maven或Gradle),我建议您从here下载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
如果您使用Maven构建项目,请执行以下步骤:
使用JavaJavaJDK11(指向您本地的archetype
org.openjfx javafx-controls 11 org.openjfx javafx-fxml 11
执行此操作后,您将注意到JavaFX类现在可以在编辑器中识别。
您将注意到,Maven为您管理所需的依赖项:它将为javafx.controls添加javafx.base和javafx.graphics,但最重要的是,它将根据您的平台添加所需的分类器。以我为例,麦克。
这就是jars org.openjfx:javafx-controls:11
为空的原因,因为有三种可能的分类器(windows、linux和mac平台),它们包含所有的类和本机实现。
如果您仍然想转到.m2存储库并从那里手动获取依赖项,请确保您选择了正确的依赖项(例如.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-mac.jar
)
用here.
类似的工作也适用于Gradle项目,如详细here中所述。
编辑
上面提到的入门指南包含更新的documentation和IntelliJ示例项目:
对于不带Maven/Gradle的projects.
发布于 2019-04-25 20:20:42
JavaFX不再是JDK11的一部分的问题。下面的解决方案使用IntelliJ (还没有尝试过NetBeans):
设置->项目结构->模块。在模块中,转到Dependencies选项卡,然后单击add "+“符号-> Library -> JavaFX ->从列表中选择Java,然后单击Add Selected,然后应用设置。
模块YourProjectName {需要javafx.fxml;需要javafx.controls;需要javafx.graphics;打开示例;}
我向您保证,这两个步骤将解决您使用JavaFX的所有问题。
参考:由学习编程频道制作的You Tube教程,将在短短5分钟内解释上述所有细节。我也推荐看它来解决你的问题:https://www.youtube.com/watch?v=WtOgoomDewo
发布于 2019-04-26 15:56:57
以上这些对我来说都不起作用。我花了太多的时间来清除出现的其他错误。我发现这是最简单也是最好的方法。
This works for getting JavaFx on Jdk 11, 12 & on OpenJdk12 too!
(我更喜欢下面的库)。
module thisIsTheNameOfYourProject {
requires javafx.fxml;
requires javafx.controls;
requires javafx.graphics;
opens sample;
}
整个过程只用了5分钟!
https://stackoverflow.com/questions/52467561
复制相似问题