Java11以降でjavafx入りのjarファイルを起動するために
エラー: JavaFXランタイム・コンポーネントが不足しており、このアプリケーションの実行に必要です――――――
Java11からjavafxが分離し別で導入する必要が出たが、その関係でjarファイルもそのまま起動が出来なくなった。
起動時にはjavafxのパスと使用モジュールを毎回入れなければならない。
開発環境だと普通に起動できるが、作ったものをフォルダにまとめていつでも起動できるようにしたい。見るためにプロジェクトを開くなんてあまりに面倒。
というわけでフォルダ内にあるjarファイルを起動設定付きのバッチファイルにするものを作成。
make.batで
jarファイルに対応するバッチファイルを作って
簡単に起動できるようになった。
作成物のレベルが上がって使用モジュールが増えたらまた書き足すことになるのかな?
ひとまず現段階はこれで満足。
ページ背景が白でエクスプローラも白だからすごい余白感気になるからそういうの気にしないとなって思いながら特にいじったりはしない。
もしもjavafxアプリを配布するとなったらsdk入りのexeとかになるの?なんか面倒そうだなあ・・・
以下ソース
javafx14以降だと前エントリーにあるようオプションが増えると思う。
SETLOCAL ENABLEDELAYEDEXPANSION
SET fxPath="C:\IntelliJworkspace\sdk\javafx-sdk-11.0.2\lib"
FOR %%f IN (*.jar) DO (
SET S1=%%f
SET S2=!S1:~0,-4!.bat
if not exist !S2! (
type nul > !S2!
echo java --module-path %fxPath% --add-modules=javafx.controls,javafx.fxml -jar %%f > !S2!
)
)