web-dev-qa-db-ja.com

JavaFXとJava 11がIntelliJで動作する方法IDEA

最近のJava 11リリースでは、JavaFXはJDKに含まれなくなりました。既存のJavaFXプロジェクトがあります。 Java 10プロジェクトからJava 11に変更する方法に興味があります。Java 11を正しくインストールしたことは確かです。デフォルトのSDKをJava 10からJava 11.に変更できます。JavaFXをJava 11で動作させる方法がわかりません。

最新のJavaFXリリース ここ をダウンロードしました。他のJDKが含まれているJavaフォルダに解凍しましたが、現時点ではどうすればよいかわかりません。 MavenまたはGradleを使用してプロジェクトを接続する方法を説明する長いガイドをいくつか読んだことがありますが、これらを使用したことはありません。 IntelliJメニューにJavaFXサポートを追加する方法はありますか?

6
Jack J

ご使用のオペレーティングシステムに適切なJavaFX SDKをダウンロードし、希望の場所(/ Users/your-user/Downloads/javafx-sdk-11など)に解凍します。

  1. JavaFXプロジェクトを作成する

enter image description here

JavaFXプロジェクトを作成するHelloFXなどのプロジェクトの名前と場所を指定します。プロジェクトを開くと、JavaFXクラスが認識されません。 enter image description here

  1. JDK 11を設定する

[ファイル]-> [プロジェクト構造]-> [プロジェクト]に移動し、プロジェクトSDKを11に設定します。言語レベルを11に設定することもできます。JDK11を設定 enter image description here

  1. ライブラリを作成する

[ファイル]-> [プロジェクトの構造]-> [ライブラリ]に移動し、JavaFX 11 SDKをライブラリとしてプロジェクトに追加します。 JavaFX SDKのlibフォルダーをポイントします。 enter image description here

ライブラリが適用されると、JavaFXクラスがIDEによって認識されます。 enter image description here

警告:プロジェクトを今実行するとコンパイルされますが、次のエラーが発生します。

エラー:JavaFXランタイムコンポーネントがありません。このアプリケーションを実行するために必要です

Java 11ランチャーは、メインクラスがjavafx.application.Applicationを拡張するかどうかをチェックするため、このエラーが表示されます。その場合、モジュールにjavafx.graphicsモジュールが必要です。道。

  1. VMオプションを追加

この問題を解決するには、[実行]-> [構成の編集...]をクリックして、次のVMオプションを追加します。

--module-path%PATH_TO_FX%--add-modules = javafx.controls、javafx.fxml

IntelliJによって作成されたデフォルトのプロジェクトはFXMLを使用するため、javafx.fxmlがjavafx.controlsとともに必要であることに注意してください。プロジェクトで他のモジュールを使用している場合は、それらも追加する必要があります。 enter image description here [適用]をクリックしてダイアログを閉じます。

  1. プロジェクトを実行する

実行->実行...をクリックしてプロジェクトを実行します。これで問題なく動作するはずです。

2
liuyez123

Java JavaFXを含むバージョン https://www.azul.com/downloads/zulu/zulufx/ をダウンロードできます。その場合、特別なものはありませんJava 11.でJavaFxアプリケーションを実行するために必要なセットアップ。JavaFXはJava 8.と同様に機能します。

1
user577736