私はチュートリアルを正確にたどりましたが、うまくいかないようです。チュートリアルは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
が表示されるため、これはほとんど意味がありません。
jdk-11.0.1
およびjavafx-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
ここからどこに行くべきか全く分かりません。チュートリアルを正確に実行しましたが、機能しません。どんな助けも大歓迎であり、あなたがより多くの情報を必要とするならば、それについてのコメントを落としてください。
投稿されたコマンドラインに基づいて、これはIntelliJがプロジェクトの実行に適用するものです。
"C:\Program Files\Java\jdk-11.0.1\bin\Java.exe" --module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml
したがって、問題は非常に明確です:VMオプションで設定したオプションverbatimの内容 tutorial の意味:
ただし、チュートリアルのそのコマンドの後に挿入された写真に示されているように、実際のパスをPATH_TO_FX
に適用していません。
IntelliJはその変数を解決せず、モジュールパスが設定されていないため、JavaFXモジュールが見つからないことを示す予想されるエラーが表示されます。
Error occurred during initialization of boot layer
Java.lang.module.FindException: Module javafx.controls not found
ソリューション
これは2つの方法で解決できます。
実行構成を編集し、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
フォルダーへのパスと共に追加します。
そして、VMオプションでリテラル$PATH_TO_FX$
または${PATH_TO_FX}
を使用できます。
--module-path ${PATH_TO_FX} --add-modules=javafx.controls,javafx.fxml
適用して実行します。
これは、他のJavaFXプロジェクトに適用できるより永続的なソリューションであることに注意してください。