[英]java.lang.module.FindException: Module javafx.controls not found
[英]JavaFX Modular Application, java.lang.module.FindException: Module javafx.controls not found (Java 11, Intellij)
我的模塊化 JavaFX 應用程序有問題。 我創建了一個 JavaFX 項目並添加了 JavaFX 庫,並且 JavaFX 模塊得到了認可。 但是,我不斷收到這些錯誤消息:
Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found
特此附上完整設置的圖像:
編輯:
這是所有錯誤消息:
/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.library.path=
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib --module-
-path=~/Documents/JavaTools/javafx-sdk-11.0.1/lib
--add-modules=javafx.controls,javafx.fxml
--add-modules javafx.base,javafx.graphics --add-reads
-javaagent:/home/thenekolite/idea-IU-183.4588.61/
lib/idea_rt.jar=35937:/home/thenekolite/idea-IU-183.4588.61/bin
-Dfile.encoding=UTF-8 -classpath /home/thenekolite/IdeaProjects/
Latihan1/out/production/Latihan1:/home thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/src.zip:/home/thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/javafx-swt.jar:/homehome/thenekolite/Documents
/JavaTools/javafx-sdk-11.0.1/lib/javafx.fxml.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/libjavafx.media.jar:
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.swing.jar:/home/thenekolite/Documents/JavaTools/javafx
sdk-11.0.1/lib/javafx.controls.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar
-p /home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.base.jar:/home/thenekolite/Documents/
JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found
我還添加了 vm 選項:
但是,我仍然收到此錯誤消息。
我的模塊化JavaFX應用程序有問題。 我創建了一個JavaFX項目,並添加了JavaFX lib和JavaFX模塊。 但是,我不斷收到這些錯誤消息:
Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found
完整安裝程序的圖像隨附於此:
編輯:
這是所有錯誤消息:
/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.library.path=
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib --module-
-path=~/Documents/JavaTools/javafx-sdk-11.0.1/lib
--add-modules=javafx.controls,javafx.fxml
--add-modules javafx.base,javafx.graphics --add-reads
-javaagent:/home/thenekolite/idea-IU-183.4588.61/
lib/idea_rt.jar=35937:/home/thenekolite/idea-IU-183.4588.61/bin
-Dfile.encoding=UTF-8 -classpath /home/thenekolite/IdeaProjects/
Latihan1/out/production/Latihan1:/home thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/src.zip:/home/thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/javafx-swt.jar:/homehome/thenekolite/Documents
/JavaTools/javafx-sdk-11.0.1/lib/javafx.fxml.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/libjavafx.media.jar:
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.swing.jar:/home/thenekolite/Documents/JavaTools/javafx
sdk-11.0.1/lib/javafx.controls.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar
-p /home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.base.jar:/home/thenekolite/Documents/
JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found
我還添加了vm選項:
但是,我仍然收到此錯誤消息。
我的模塊化JavaFX應用程序有問題。 我創建了一個JavaFX項目,並添加了JavaFX lib和JavaFX模塊。 但是,我不斷收到這些錯誤消息:
Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found
完整安裝程序的圖像隨附於此:
編輯:
這是所有錯誤消息:
/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.library.path=
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib --module-
-path=~/Documents/JavaTools/javafx-sdk-11.0.1/lib
--add-modules=javafx.controls,javafx.fxml
--add-modules javafx.base,javafx.graphics --add-reads
-javaagent:/home/thenekolite/idea-IU-183.4588.61/
lib/idea_rt.jar=35937:/home/thenekolite/idea-IU-183.4588.61/bin
-Dfile.encoding=UTF-8 -classpath /home/thenekolite/IdeaProjects/
Latihan1/out/production/Latihan1:/home thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/src.zip:/home/thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/javafx-swt.jar:/homehome/thenekolite/Documents
/JavaTools/javafx-sdk-11.0.1/lib/javafx.fxml.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/libjavafx.media.jar:
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.swing.jar:/home/thenekolite/Documents/JavaTools/javafx
sdk-11.0.1/lib/javafx.controls.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar
-p /home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.base.jar:/home/thenekolite/Documents/
JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found
我還添加了vm選項:
但是,我仍然收到此錯誤消息。
在 IntelliJ 中,創建項目時,執行 New > Project 向導時,選擇“BootstrapFX”依賴項。
這增加了需要“org.kordamp.bootstrapfx.core;” 到您的 modules-info.java 並在 IntelliJ 2021.2.1 中為我解決了這個問題。
建議:使用新項目向導而不是 JavaFX SDK<\/strong>
不要使用下載的 JavaFX SDK。 使用構建工具(例如 Maven)來添加 JavaFX 和其他依賴項。 使用Create new JavaFX project 向導<\/a>生成您的項目。
該向導將基於構建工具(maven 或 gradle)配置模塊化項目。
IMO 這是創建新項目的更容易和更好的方法。 以這種方式創建的項目更易於使用、更有用且面向未來:
IDE 將能夠運行項目,而無需為模塊系統手動指定命令行參數。 這是因為:
IDE 可以自動從 maven 依賴項中找到所需的模塊,因此您無需手動指定--module-path<\/code> 。
<\/li>
該項目包含一個module-info.java<\/code>文件,因此您無需手動添加--add-modules<\/code> 。
<\/li><\/ul><\/li>
可以使用 Jenkins 等持續集成構建工具輕松構建該項目:
使用手動 SDK 依賴項設置 Jenkins 來構建項目會很棘手。<\/li><\/ul><\/li>
可以使用 jpackage 或 jlink 將項目鏈接到運行時。
這是因為它是一個模塊化應用程序。<\/li><\/ul><\/li>
任何重要的應用程序都需要額外的依賴項; 最好以 IMO 相同的方式管理 JavaFX 依賴項和其他依賴項。<\/li><\/ul><\/li><\/ol>
使用 JavaFX SDK 的故障排除步驟<\/strong>
您有環境問題,所以我無法給出明確的答案,只提供故障排除步驟,以便您修復環境。
如果要繼續使用sdk,請將其放在沒有空格的位置,或者在使用時引用路徑。
VM args 的 Idea UI 非常令人困惑,請確保您實際設置了 VM args 而不是程序 args。 為此,請參閱以下答案:
展開 Idea 在執行時放置在控制台窗格中的 Java 執行命令,並將其復制為文本以添加到您的問題中,格式為代碼。
查看 Java 執行命令時,請確保模塊參數位於主類名之前,而不是之后。
將執行命令復制到命令行並嘗試在那里運行。
提供模塊路徑時,請嘗試使用實際路徑(如果需要,請適當引用),而不是環境變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.