【发布时间】:2019-05-01 04:33:06
【问题描述】:
我在 IntelliJ 中创建了一个 JavaFX 项目。 我可以在 IntelliJ 中运行项目。我在配置中添加了以下代码):
--module-path ${PATH_TO_FX} --add-modules=javafx.controls,javafx.fxml
但是项目的输出 .jar 文件(使用 Artifects 制作)没有运行。我测试了这些命令,但没有任何机会:
java --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.fxml -jar Timer.jar
java --module-path %PATH_TO_FX% --add-modules javafx.controls Timer.jar
命令行最后的错误日志:
Error: Could not find or load main class Files\Java\javafx-sdk-11.0.1\lib
Caused by: java.lang.ClassNotFoundException: Files\Java\javafx-sdk-11.0.1\lib
p.s:我可以在 JDK-10 上构建时运行这个项目的 .jar 文件
编辑:
我下载了 JavaFX 并将它的 lib 文件夹添加到系统环境中。 为了将 JavaFX 添加到项目中,我做了这个过程: 项目结构 > 库 > 添加 > Java > JavaFxPath/lib
然后我在这个过程中为输出 jar 文件创建了 Artifect: 项目结构 > 工件 > 添加 > JAR > 从具有依赖项的模块 > 主类:main.Main.
【问题讨论】:
-
是的。我有主班。使用 IntelliJ 选项中的构建工件
-
如果你运行
java -jar Timer.jar --module-path %PATH_TO_FX% --add-modules javafx.controls,输出是什么?当你运行java --module-path .../javafx-sdk-11/lib --add-modules=javafx.controls,javafx.fxml -classpath "<path to Timer.jar>" sample.Main? -
这个错误给出:
Error: Could not find or load main class Files\Java\javafx-sdk-11.0.1\lib Caused by: java.lang.ClassNotFoundException: Files\Java\javafx-sdk-11.0.1\lib -
第二种方法的错误:
Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found -
由于在模块路径中明确指定了相同的模块。您可以使用help of
--show-module-resolution进一步调试查找已解析的模块。
标签: java javafx java-11 openjfx