【帰って来たコタツ級】Apach NetBeans内でjlinkを使用してMavenとOpenJFXによるJavaFXアプリの配布工程について検証ができた話【動画紹介】


　すっかり春ですが今回も[前回](https://qiita.com/AmericanDreamHoldings/items/a624ed22e706c14e4a9a "【コタツ級】私がJavaFX 11とMavenから実行可能なjarファイルを作れるようになるまで【丸パクリ】")に続き~~盗用~~コタツ記事です。

https://www.youtube.com/watch?v=eSJTTHypDEw

　やはり今回も[前回](https://qiita.com/AmericanDreamHoldings/items/a624ed22e706c14e4a9a "【コタツ級】私がJavaFX 11とMavenから実行可能なjarファイルを作れるようになるまで【丸パクリ】")  に続いて単に紹介動画の工程をトレースしただけなので、リンクの動画を見ればすべて事足ります。
 　ただの丸パクリです、すみません…まあ「技術の民主化」ということで勘弁してください。

１．File->New Project
![1711546254.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/0bc9632f-80ab-681d-0787-c1d4f33d2c81.png)

２．Java with Maven -> FXML JavaFX Maven Archetype (Gluon)を選択
　動画ではSimple JavaFX Maven Archetype (Gluon)が提示されていますが実用性からFXMLにします。![1711546272.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/1b2e9e61-8bf2-c2ee-a1df-5991454843c4.png)

３．Name and Locationを設定
　すべて紹介動画の通りの文言にしています。
  　Group IdとPackageが例示の通りに設定されているのを確認します。
![1711546291.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/38ea9486-7414-2799-728d-4a15971d55a5.png)

４．pom.xmlを開きエディタでpropertiesの位置を確認します
![1711546315.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/6c85bb11-0fc6-8748-8f3f-04c43e7ad846.png)

５．propertiesに以下の文字列を追記（図中赤枠の箇所）
　`<javafx.mainClass>com.mycompany.helloworld.App</javafx.mainClass>`
　大文字と小文字に注意してください。
![1711546361.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/4a60065d-3ba8-45e2-1ce3-f047beb4d667.png)

６．ProjectsのHelloWorldを右クリックでビルドを選択
![1711546390.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/4881b8ba-4761-4bba-5b06-d886dd9fd43e.png)

７．成功を確認します
![1711546452.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/e7d17fa6-819b-ba52-1854-3cdb7ffabb99.png)

８．Window -> Navigatorをクリック
![1711546505.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/8a164178-0cfe-0f82-602b-99ee20b78648.png)

９．Navigatorのウインドーが開く
![1711546533.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/9fa96c0d-52a5-4d9c-9ca7-10c6456b919f.png)

１０．Projectsのpom.xmlを選択するとNavigatorの中に選択肢が現れます
![1711546560.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/15db4830-3a7a-6204-1103-c3a83ed21989.png)

１１．Related goalsを選択
![1711546587.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/679edf13-6518-5451-1963-9bb1b8947c0b.png)

１２．Navigatorの項目が変化します。
![1711546670.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/013134d3-e12d-79b9-6471-7111175bb081.png)

１３．Navigatorのjavafx jlinkを右クリックExecute Goalを選択
![1711546695.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/42f92511-7e00-38d5-30b4-65daa555eec0.png)

１４．Filesタブをドラッグして分離させます。
![1711546719.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/c2c692b2-849d-f885-8662-329c24a8a0dc.png)

１５．FilesのHelloWorld > target > image > binと階層をたどりbinフォルダを右クリックTools -> Open in Terminalを選択
![1711546740.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/d67cc2f8-f9d2-dc53-1cae-21907d3c79c3.png)
　こちらの環境ではここでCygwinのインストールを要求されました。
 
![CSP06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/a0088593-5fb0-6c9e-a74e-679221a9e725.png)
デフォルト通りの選択でインストールを進めて問題なかったと思いますが経過を控えなかったのでご自身でご判断ください。

[Cygwin: https://www.cygwin.com/index.html](https://www.cygwin.com/index.html "This is the home of the Cygwin project")


https://www.cygwin.com/index.html

　インストール後にPCを再起動の上でNetbeansを起動するとこちらの環境では全く追加の設定なしにターミナルの入力が可能になりました。

１６．WindowsですがLinuxの./で始まるコマンドライン起動します。
　`./java com.mycompany.helloworld.App`
![1711546757.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/eb3ab09a-df22-1713-947e-a9b48dae7c88.png)
（この工程を省略して17を回避すると18以降に進むことが出来ませんでしたので少なくともWindows環境ではCygwinもしくはそれに準じたものは必要になると思われます）

１７．ウインドーが表示されます。
　次の工程へ進む前にこのウインドーを閉じておいてください。
　閉じないで先に進むとエラーになります。
![1711546777.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/2b0a50a4-e41e-9b18-fd4f-6534bee58234.png)

１８．pom.xmlの中のconfigurationの箇所を確認します
![1711546797.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/599f5364-2319-3b6c-73c1-26d2da9414ed.png)

１９．赤枠の箇所に以下の通り追記します。
　紹介動画では一気にペーストしているのですが、わからなかったので画面と同じように手で入力しました。
                    `<stripDebug>true</stripDebug>`
                    `<compress>2</compress>`
                    `<noHeaderFiles>true</noHeaderFiles>`
                    `<launcher>hellofx</launcher>`
                    `<jlinkImageName>hello</jlinkImageName>`
                    `<jlinkZipName>hellozip</jlinkZipName>`
![1711546837.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/ce1da8b9-6fd9-b190-dd7e-59d85b3417a7.png)

２０．ProjectsのHelloWorldを右クリックでClean and Buildを選択
![1711546854.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/2c3ccd72-2a47-3917-90a4-f45a7ddf0250.png)

２１．成功を確認します
![1711546878.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/6c34d435-3d87-2480-6b19-efc858b7d96f.png)

２２．Navigatorからjavafx jlinkを右クリックでExecute Goalを選択
![1711546902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/fd8d346b-8495-3eb1-b26a-22ab65c5e1e3.png)

２３．成功を確認します
![1711546922.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/896a22b2-954b-f0e8-18d2-482f8eea2c16.png)

２４．FilesのHelloWorld > targetにhellozip.zipが生成されています。
![1711546937.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/d46db035-15b5-3728-0970-2beb1f001243.png)

２５．照会動画から配布に関する説明を読み取れなかったのですが、おそらくこのhellozip.zipが現実的な配布パッケージになるのだと思います。


２６．zipを別のフォルダに移動して解凍の後にhellofx.batをダブルクリックで実行すると起動しました。

　ただ、私が想定している一般配布に利用するには課題がありました。
![CSP17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48602/ca40b703-f308-59d1-fea1-7ddbf68e58e0.png)

DOS窓を非表示にするvbsファイルの例
`Set ws = CreateObject("Wscript.Shell")`
`ws.run "cmd /c bin\hellofx.bat", vbhide`


　何かのご参考になれば幸甚です。