web-dev-qa-db-ja.com

IntellijでJavaFXを使用するIDEA

私はチュートリアルを正確にたどりましたが、うまくいかないようです。チュートリアルはJavaFX and IntellijNon-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.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 の意味:

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

ソリューション

これは2つの方法で解決できます。

  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_FXlibフォルダーへのパスと共に追加します。

enter image description here

そして、VMオプションでリテラル$PATH_TO_FX$または${PATH_TO_FX}を使用できます。

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

適用して実行します。

これは、他のJavaFXプロジェクトに適用できるより永続的なソリューションであることに注意してください。

9
José Pereda