3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Java11でJavaFXを動かす

Posted at

JavaFXで簡単なアプリケーションを作ろうとした際に
Java11ではモジュールに追加する必要があり、その方法を見つけるのに苦労したので設定方法を簡単に記載します。

開発環境

Java11を使用。
IDEはIntelliJを使用しました。

JavaFXをインストールする

以下のサイトからJavaFXをインストールします。
https://gluonhq.com/products/javafx/

IntellJで新しいJavaFXプロジェクトを作成する

IntellJの File→New→Project を選択する。
スクリーンショット 2021-04-30 16.37.30.png
JavaFXを選択し、Next
スクリーンショット 2021-04-30 16.38.30.png
適当なプロジェクト名を入力して完了。

初期状態でプロジェクトをrunするとエラーになります

IntellJがサンプルコードを書いた状態でプロジェクトを作成してくれるのですが、
(コンパイルエラーはないものの)このままプロジェクトをRunすると
JavaFXランタイム・コンポーネントが不足しており、このアプリケーションの実行に必要です
というエラーになります。
スクリーンショット 2021-04-30 16.42.01.png

Java11(Java9以降)ではJavaFXはモジュール化されているため、その設定を行わないと正しく動作しないためです。

module-infoを作成、モジュールの情報を追記する

srcの中のパッケージを 右クリック→New→module-info.java で
module-info.javaを作成します。
スクリーンショット 2021-04-30 16.45.39.png

作成したmodule-info.javaの中に以下のように記述します。
 ※transitive は書かなくてもこの時点では動作します。

module-info.java
requires transitive javafx.graphics;
requires transitive javafx.controls;
requires transitive javafx.fxml;

opens sample;
exports sample;

アプリケーションを起動できました

module-info.javaを記述して再度Runすると以下のようなアプリケーションウィンドウが開きます。
スクリーンショット 2021-04-30 17.00.32.png

以上でJava11でJavaFXのアプリケーションが起動できました。

参考にした記事

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?