1
0

【2024年】JavaFX アプリの実行可能ファイル化 (Windows, Eclipse)

Last updated at Posted at 2024-03-24

はじめに

本資料では Java がインストールされていない環境で、Eclipse で開発した自作プログラムを .exe ファイルとして実行できるようにする方法を紹介しています。

参考資料

参考資料として紹介している記事を読んでいただくのが一番早いかと思います。もう少し丁寧に、ということでまとめ直させていただきました。

実施環境

  • Windows 11 Pro
  • Eclipse 2023-12
  • e(fx)clipse 3.8.0
  • Oracle OpenJDK 21
  • JavaFX 21
  • Launch4j 3.50

サンプルの Eclipse プロジェクト名は「HelloFXSample」です。これから、「HelloFXSample.exe」として実行できるようにしていきます。

作業方法

Eclipse プロジェクトのエクスポート

exe ファイル化したいプロジェクトを右クリックし、エクスポートを選択します。

image.png

「実行可能JARファイル」を選択し、次へ進みます。

image.png

必要な設定を行い、JARファイルを生成します。

項目 選択
起動構成 Main (ドロップダウンリストにある)
エクスポート先 JAR ファイルの保存先
ライブラリー処理 生成されるJARの隣のサブフォルダーに必須ライブラリーをコピー

image.png

エクスポートすると、保存先に JAR ファイルと外部ライブラリ入りのフォルダが作成されます。
image.png

アプリ実行用の最小構成 JRE を作成する

Java の実行には JRE (Java Runtime Environment) が必要です。開発環境の JRE をそのままコピーしても動作しますが、配布用なので、なるべく最小限のサイズにしたいということで、最小構成の JRE を作成します。

jdeps によるモジュールの依存関係の確認

jdeps コマンドを使い、モジュールの依存関係を確認します。jdeps コマンドは JDK に含まれているため、パスが通っていれば利用できます。

コマンド書式
> jdeps --module-path [JavaFX SDK の lib ディレクトリ] -s [JAR ファイル]

--module-path オプションの [JavaFX SDK の lib ディレクトリ] には、インストールしているはずの JavaFX SDK の lib ディレクトリのパスを指定します。複数パスを指定する場合は ; で区切れば良さそうです。

image.png

こちらの環境では、SDK を "C:\pleiades\javafx-sdk-21.0.2" に格納しているので、次のように指定しました。

コマンド実行例
> jdeps --module-path "C:\pleiades\javafx-sdk-21.0.2\lib" -s HelloFXSample.jar

HelloFXSample -> java.base
HelloFXSample -> javafx.base
HelloFXSample -> javafx.controls
HelloFXSample -> javafx.fxml
HelloFXSample -> javafx.graphics

最小構成 JRE 化するにあたって、jdeps コマンドで列挙された項目を、次で使う jlink コマンドの --add-modules に指定します。

  • java.base
  • javafx.base
  • javafx.controls
  • javafx.fxml
  • javafx.graphics (参考資料によると、不要とのこと)

jlink コマンドによる JRE の作成

jlink コマンドを使い、配布アプリケーション専用の JRE を作成します。

コマンド書式
> jlink --module-path [JavaFX の jmods ディレクトリ] --add-modules java.base,javafx.base,javafx.controls,javafx.fxml --output jre-min

--module-path オプションの [JavaFX の jmods ディレクトリ] には JavaFX SDK 配布サイトでダウンロードできる jmods ファイルのディレクトリを指定します。

image.png

--add-modules オプションには jdeps コマンドで見つかった依存関係のライブラリをカンマ区切りで指定します。

コマンド実行例
> jlink --module-path "C:\pleiades\javafx-jmods-21.0.2" --add-modules java.base,javafx.base,javafx.controls,javafx.fxml --output jre-min

うまく行けば jre-min ディレクトリが生成されています。
image.png

JARファイルを動作確認する

PowerShell または cmd.exe で JAR ファイルを保存したディレクトリで作業します。
次のようなコマンドで、JAR ファイルからプログラムが実行できることを確認します。

コマンド書式
> .\jre-min\bin\java.exe -jar [JAR ファイル]
コマンド実行例
> .\jre-min\bin\java.exe -jar HelloFXSample.jar

EXE ファイルに変換する

変換には Launch4j を使用します。次のサイトからダウンロードし、インストールしてください。

http://launch4j.sourceforge.net/

Basicタブでは次のような設定を行います。

設定項目 設定内容
Output file 出力する exe ファイル名を設定します。JRE から相対パスで指定できるよう jre-min フォルダの横に指定します。
Jar 変換するJARファイルを指定します

image.png

JREタブでは次のような設定を行います。

設定項目 設定内容
JRE paths exe ファイルを基準に jre-min ディレクトリを相対パスで指定します
Min JRE version 必須項目です。21.0.2 のように Java のバージョンを指定します

image.png

最後に、画面上部の歯車マーク (Build Wrapper) で設定ファイルを保存し、実行します。実行時のログに "Successfully created" があれば成功しているはずです。

画面上部の再生マーク (Test Wrapper) で実行して動作を確認します。

作業ディレクトリにある、jre-min ディレクトリと exe ファイルを配布することで、どこでも実行できます。
こちらの環境では、lib ディレクトリや jar ファイルは必要ありませんでした。
image.png

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