0
3

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.

JavaFXアプリを動かす(OpenJDK11)

Posted at

JavaFX アプリが動かない

jar で配布されている Java アプリについて、Windowsでは JRE / JDK がインストールされていれば jar をダブルクリックして実行することができた…はず。

AdoptOpenJDK から最新版LTSであるOpenJDK11をインストールしたのだが

エラー: メイン・クラスXXXX.Mainを検出およびロードできませんでした
原因: java.lang.NoClassDefFoundError: javafx/application/Application

となり実行することができない。

JavaFX が同梱されてない

いろいろ調べた結果、JavaFX がそのままではインストールされなくなったのが原因らしい。
OpenJFX + OpenJDK で JavaFX を動かす - JavaFX in the Box

ざっくりとした手順

  • JavaJFXをインストール
  • --module-path, --add-modules で必要な javafx モジュールを指定して java を起動

JavaFX のインストール

Getting Started with JavaFX から必要なパッケージをダウンロードする。動かすだけでもSDKが必要な模様

起動オプション

jar をダブルクリックして動かすだけならば

> java -jar XXXX.jar

となるが、JavaFX をモジュールとして明示的に指定してやる必要があるので、次のようなバッチファイルを用意して起動させることにした。なお、ダウンロードした javafx-sdk は C:\Program Files\AdoptOpenJDK\javafx-sdk-11.0.2 に展開している

@echo off
set JAVA_FX="C:\Program Files\AdoptOpenJDK\javafx-sdk-11.0.2\lib"
java --module-path %JAVA_FX% --add-modules=javafx.controls,javafx.fxml -jar XXXX.jar

対象のアプリが javafx.fxml を必要としていたため、javafx.controls, javafx.fxml の2つを追加モジュールとして指定している。

0
3
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
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?