簡體   English   中英

將 JavaFX 與 Intellij IDEA 結合使用

[英]Using JavaFX with Intellij IDEA

我精確地遵循了教程,但似乎無法使其正常工作。 本教程位於Non-modular from IDE部分的JavaFX and Intellij Non-modular from IDEhttps : JavaFX and Intellij

這是我在嘗試運行默認的 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 在此處輸入圖片說明

導致jdk-11.0.1javafx-sdk-11.0.1的路徑:

C:\\程序文件\\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

我真的不知道從這里去哪里。 我完全按照教程進行了操作,但它不起作用。 任何幫助將不勝感激,如果您需要更多信息,請發表評論。

根據發布的命令行,這是 IntelliJ 用於運行您的項目的內容:

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

所以問題很清楚:在 VM 選項中,您已經逐字設置了教程所說的內容:

在此處輸入圖片說明

但是您還沒有為PATH_TO_FX應用您的真實路徑,正如教程中該命令之后插入的圖片中所建議的那樣:

在此處輸入圖片說明

IntelliJ 不解析該變量並且未設置模塊路徑,因此您會收到預期錯誤,表明未找到 JavaFX 模塊:

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

解決方案

這可以通過兩種方式解決:

  1. 應用您的路徑:

編輯運行配置,並在 VM 選項中添加您的路徑:

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

申請,然后運行。 它應該工作。

  1. 添加環境變量

您還可以設置環境變量。 轉到IntelliJ->File->Settings->Appearance & Behavior->Path Variables ,並添加PATH_TO_FX ,以及lib文件夾的路徑:

在此處輸入圖片說明

然后您可以在 VM 選項中使用文字$PATH_TO_FX$ (不適用於 Windows 上的 IntelliJ IDEA 2021.1(社區版))或${PATH_TO_FX}

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

申請,然后運行。

請注意,這是一個更持久的解決方案,可以應用於任何其他 JavaFX 項目。

最佳解決方案可能適用於一個簡單的案例,您沒有指定VM options ,但有時可能會更復雜。

如果最佳解決方案不是您的情況,那么還有另一件事要檢查:檢查您的項目根文件夾是否包含模塊名稱的.iml文件(檢查項目結構)。

如果.iml丟失,那么您需要在項目結構中重新創建模塊。 您需要在項目結構中重新創建模塊,因此模塊將生成並鏈接 .iml 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM