首页 文章

将JavaFX与Intellij IDEA结合使用

提问于
浏览
2

我好像开始工作了 . 本教程位于 JavaFX and Intellij Non-modular from IDE 部分:https://openjfx.io/openjfx-docs/#install-java

以下是我尝试运行默认的Intellij Idea JavaFX项目时收到的错误消息:

"C:\Program Files\Java\jdk-11.0.1\bin\java.exe" --module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml --add-modules javafx.base,javafx.graphics --add-reads javafx.base=ALL-UNNAMED --add-reads javafx.graphics=ALL-UNNAMED "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.3\lib\idea_rt.jar=53491:C:\Program Files\JetBrains\IntelliJ IDEA 2018.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\jonat\IdeaProjects\Tawe-Lib FX\out\production\Tawe-Lib FX;C:\Program Files\Java\javafx-sdk-11.0.1\lib\src.zip;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx-swt.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.web.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.base.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.fxml.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.media.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.swing.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.controls.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.graphics.jar" sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.base not found

Process finished with exit code 1

这对我来说没什么意义,因为我可以在侧栏上的 lib 下看到 javafx.base
enter image description here

通往 jdk-11.0.1javafx-sdk-11.0.1 的路径:

C:\ Program Files \ Java

安装Java:

C:\Users\jonat>java --version
openjdk 11.0.1 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)

设置了 JAVA_HOME 变量(在指南中提到):

C:\Users\jonat>echo %JAVA_HOME%
C:\Program Files\Java\jdk-11.0.1

PATH_TO_FX 变量已设置:

C:\Users\jonat>echo %PATH_TO_FX%
C:\Program Files\Java\javafx-sdk-11.0.1\lib

我真的不知道从哪里开始 . 我已经准确地遵循了教程,但它不起作用 . 任何帮助将不胜感激,如果您需要更多信息,请发表评论 .

1 回答

  • 2

    基于发布的命令行,这是IntelliJ应用于运行项目的内容:

    "C:\Program Files\Java\jdk-11.0.1\bin\java.exe" --module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml
    

    所以问题非常明确:在VM选项中,您已逐字设置了tutorial所说的内容:

    enter image description here

    但是你还没有为 PATH_TO_FX 应用你的真实路径,因为在教程中该命令之后插入的图片中建议:

    enter image description here

    IntelliJ不解析该变量并且未设置模块路径,因此您会得到预期的错误,该错误表明找不到JavaFX模块:

    Error occurred during initialization of boot layer
    java.lang.module.FindException: Module javafx.controls not found
    

    Solution

    这可以通过两种方式解决:

    • 申请你的路径:

    编辑运行配置,并在VM选项中添加您的路径:

    --module-path "C:\Program Files\Java\javafx-sdk-11.0.1\lib" --add-modules=javafx.controls,javafx.fxml
    

    申请,然后运行 . 它应该工作 .

    • 添加环境变量

    您还可以设置环境变量 . 转到 IntelliJ->File->Settings->Appearance & Behavior->Path Variables ,并添加 PATH_TO_FX ,其中包含 lib 文件夹的路径:

    enter image description here

    然后您可以在VM选项中使用文字 $PATH_TO_FX$${PATH_TO_FX}

    --module-path ${PATH_TO_FX} --add-modules=javafx.controls,javafx.fxml
    

    申请,然后运行 .

    请注意,这是一个更加永久的解决方案,可以应用于任何其他JavaFX项目 .

相关问题