danpapa blog

趣味のプログラミング等について

VSCode + JavaFX + SceneBuilder + EXE化

動画説明

先回はVSCode + JavaFX + SceneBuilderでデバッグできるまでを説明しました。
danpapa-hry.hateblo.jp

でも、この方法、danpapaにとっては面倒なんです。はい、横着なのでw
更に、JAR→EXE化とか難しすぎ&コマンド覚えきれませんwってことで、今回の動画がこれです。


先回までの内容を全てテンプレートにしちゃいました。新しいプロジェクトを作成するとファイルを準備してくれます。
そして、ビルドタスクを実行すると、EXE化までできるようにしました。まぁ、方法としては無茶苦茶な方法でやってますが、ずいぶん簡単になりました。それでは説明していきましょう!

環境構築方法
・まずこのファイルをダウンロードします。
https://yahoo.jp/box/eWvGUk (テンプレート用のファイルです)
・解凍(展開)して、ファイルを環境に合わせて編集します。(先回の説明と同じはず)
 1、Java11/.classpath (javafx.base.jar等のパス)
 2、Java11/.vscode/launch.json (--module-path から --add-modulesの間のパス)
・次にJava拡張機能のテンプレートを書き換えます(バックアップは各自取ってください)
 1、C:\Users\ユーザー名\.vscode\extensions\vscjava.vscode-java-dependency-0.9.0\templatesの中にある
   App.java.sampleとJava11というフォルダを編集したものに入れ替えてください。
・次にEXE化の為にlaunch4jというソフトを準備します。
launch4j.sourceforge.net
 1、ダウンロード&適当な場所へ展開
 2、launch4j.jarのあるフォルダーへPathを通してください。

とりあえずこれだけのはずです。もし配布するときはEXEとjreというフォルダをセットで配布することになります。
jreの容量を削減したい場合は、jlinkを使って必要な機能だけ抽出すれば随分削減できるはずです。
参考(全部入れてる):jlink --module-path D:\0000_APPS\0000_SourceCode\Java\0000_lib\javafx-jmods-11.0.2 --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web --compress=2 --output jre

まぁ、テンプレートなので、必要なら変更すればいいだけです。
あ、勿論、VSCode拡張機能などは必要なので、先回の記事を見てください。

!!重要!!
もし環境構築して、新しいプロジェクトを作成したら、必ずタスクの実行を行ってください。
タスクの実行で必要なファイルが必要な場所へ移動されます。これをやらないでデバッグ開始しても
うまく動きません。

本当はVSCode拡張機能を作ればいいんですが、danpapaにそのスキルはございませんw
そのうち、誰かが良い方法を提供してくれるでしょう。

あ~、今回も見づらい&わかりにくい文章で申し訳ない。。。適当&横着なdanpapaでした。