18

チュートリアルを正確に実行しましたが、うまく動作しないようです。チュートリアルは次の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

サイドバーの javafx.base下にあるように、これは私にはほとんど意味がありません。libここに画像の説明を入力

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

ここからどこへ行けばいいのか本当にわかりません。チュートリアルを正確に実行しましたが、機能しません。さらに詳しい情報が必要な場合は、コメントを残してください。

4

2 に答える 2

31

投稿されたコマンドラインに基づいて、これは 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

解決

これは、次の 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

ここに画像の説明を入力

次に、リテラル$PATH_TO_FX$(Windows 上の IntelliJ IDEA 2021.1 (Community Edition) では機能しません) または${PATH_TO_FX}VM オプションで使用できます。

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

適用し、実行します。

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

于 2018-11-22T18:37:01.973 に答える