はじめに
これまて長らくJava 1.8とその付属(?)のFXをNetBeansで使っていましたが、趨勢的に11に上げようとするも配布用のJarを作ることは出来ませんでした。
私はMavenについて知識が無いので勉強するか使わなければ状況も変わるのかもしれないのですが、そうも行かないので困っていました。
コマンドラインでじぇいりん君とやらを操作すれば出来るのかもしれませんがネットの大体の記事はLinux前提で書かれていたりしてWindows上でのデスクトップアプリを作ろうとする私の目的と馴染まなかったり、コーディング以外はGUIで操作できるのがIDEの利点と考えているのでわざわざ黒い画面を出すのもどうよという気分で腐っていました。
そして一月半くらい色々調べても分からなかったので諦めて1.8を使い続けようかと断念しかけていたのですが、どうにか出来るようになりました。
使用環境
Product Version: Apache NetBeans IDE 16
Java: 17.0.3.1; Java HotSpot(TM) 64-Bit Server VM 17.0.3.1+2-LTS-6
Runtime: Java(TM) SE Runtime Environment 17.0.3.1+2-LTS-6
System: Windows 10 version 10.0 running on amd64; MS932; ja_JP (nb)
元ネタ
このYouTubeです。
これを見ればもうこの記事を見る必要はありません。
タイトルからお察しの通り、これはこの動画通りに私がやった手順を記録しただけで何のオリジナル要素も無いパクリ記事です。
しかし皆様の利便性の向上が見込めるという大義名分のもとにご紹介させて頂くことにしました。(Mavenだけに)
実践
3.プロジェクト名を変更します。
この後に出てきますがプロジェクトのプロパティで私の環境では初めからJava11の表示になっているのでここで表示されているAdditional Creation PropertiesのValueはその影響を受けるかもしれません。
このあたりは私には分からないので勘弁して下さい。
4.ビルドに成功しました。
さくさく進めます。(SUCCESSだけに)
6.ここのSource/Binary/Formatは希望通り初めから11になっているのですが、恐らく以前別のプロジェクトを作った時の設定を引き継ぐのでしょうか。
そして私はここがどういう効力なのかは分かっていませんが、初心者なのでイチイチ気にしません。(11だけに)
3の工程に影響がありましたら済みません。
7.ここは11を選びます。
なんで11なんだ17でやればいいじゃ無いかと思われるかもしれませんが個人的に諸般の事情があるのです。
あとJava Plathomeの追加の仕方は各自調べて下さい。
そして面倒くさい説明を省くのはズルイなどと言わないで下さい。(Zuluだけに…すみません、もう止めます)
10.App.javaと同じパッケージにメインクラスを作成します
12.mainメソッドの中身を書きます。
メインクラスではなく普通のクラスを作ってしまった方はここでメソッドの外側ごと書けば大丈夫です。
13.念の為に自作のMain.javaから起動できるか確認します。
15.今度はProject Files配下のpom.xmlを開き最下端付近の</plugins>
を確認します
16.ここで冒頭で紹介したYouTubeのページを開き、概要欄の「もっと見る」をクリックして展開された中にあるリンクをクリックします。
だから初めからビデオだけ見てればいいだけの話なのですが…申し訳ないです。
17.ここにある内容をそっくり15のpom.xmlに追記挿入するのですが、同じページで疑義が呈されていました
なんでもバージョンが欠けているのでそれを入れればうまくいくよとの事。
EpicConOwO commented on Mar 12, 2022 •
i did some digging, for me the problem was "version" tag was missing, adding version tag fixed the issue for me.
端折って後の提案の方をコピペしました(ここもそっくり引用しています)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer implementation=
"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.game.hangman.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
18.コピペが終わった状態
</plugins>
の手前に入れ込む形ですね。
19.<mainClass>
のタグのクラス名をご自身のご作成状況にあわせて変更します
20.プロジェクトを右クリックしRun Maven->Goals..を選択
22.補完機能の提示を無視しcleanだけでOKを押下
余りにも無知でclean:cleanと何が違うのか分からないですが、これを選択すると駄目でした。
23.一旦起動します。
図は省略しますが、普通に起動するはずです。
24.プロジェクトを右クリックしRun Maven->Goals..を再び選択
このあたりで赤字で色々と表示されるのですが私は英語が全く分からないので勝てば官軍で進めます。
27.targetフォルダに二つのjarが出来ているはずです。
-shadedと付いている方をダブルクリックします。
(万が一のぬか喜びを避ける為にIDEを先に終了させておいた方が良いでしょう)
28.ゴーーーーーーーーーーーーーーーーーーーール!
愚痴
組めて、走って、配れる。
そんな当たり前の喜びもAIに奪われる日はもうすぐなのでしょう。