我正在开发一个 JavaFX 项目,我开始使用 Netbeans 没有任何问题,然后切换到 IntelliJ Idea,但遇到了问题。 起初,一些导入(例如 java.sql 和 javafx)无法正常工作,因此我在 src 文件夹中添加了一个 module-info.java 文件,其中放置了所有必需的导入,如下所示:
module blood {
requires javafx.fxml;
requires javafx.controls;
requires javafx.graphics;
requires java.sql;
requires java.desktop;
requires jdk.jfr;
opens sample;
}
该模块与项目“blood”同名。 现在我没有关于导入的错误,但是当我运行我的项目时,我得到了这个:
"C:\Program Files\Java\jdk-11.0.2\bin\java.exe" --module-path C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib --add-modules=javafx.controls,javafx.graphics,javafx.fxml --add-modules javafx.base,javafx.graphics --add-reads javafx.base=ALL-UNNAMED --add-reads javafx.graphics=ALL-UNNAMED -Djava.library.path=C:\Users\USER\Downloads\javafx-sdk-11.0.2 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4\lib\idea_rt.jar=50526:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4\bin" -Dfile.encoding=UTF-8 -m blood/sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module blood not found
Process finished with exit code 1
我还在虚拟机选项中添加了这一行:
--module-path "C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib" --add-modules=javafx.controls,javafx.graphics,javafx.fxml
我应该做什么?
最佳答案
--module-path C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib
不足以加载您为应用程序创建的模块blood
。另一方面,命令行参数
-m blood/sample.Main
期望具有 sample.Main
类的 blood
模块运行应用程序。这就是错误读取的原因
java.lang.module.FindException: Module blood not found
因此,解决方案是添加正在构建模块 blood
的输出文件夹。
--module-path C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib;<project-output-diretory>
openjfx-docs “JavaFX 和 IntelliJ”部分还有一个子主题“来自 IDE 的模块化”,其中讨论了“添加 VM 选项”以明确此配置。
关于javafx 11 项目,找不到模块- intellij,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60903473/