Intellij IDEA Ultimateを使ってJavaFXアプリケーションを開発しているとき、jlinkを使ってビルドしたくなって設定にclean javafx:jlink
と入力した。
そしたらなんと!!エラーが出てビルドが失敗してしまったのだ...
エラーを読んでググって解決すればいいと思ってエラー文を見ると
[WARNING] Required filename-based automodules detected. Please don't publish this project to a public artifact repository!
�G���[: jlink�ł͎������W���[���͎g�p�ł��܂���: file:///C:/Users/mfmii/.m2/repository/net/synedra/validatorfx/0.1.13/validatorfx-0.1.13.jar�����validatorfx
[ERROR] Command execution failed.
...読めない
そう、文字化けが発生してしまったのだ!!
原因を探る
コンソール側はUTF8なので、ビルドしたときのエラーメッセージが日本語でUTF8でなかったと思われる。
文字化けした文字コードを解析するとUTF-8なんで、ナニカからUTF8になって文字化けが発生したのだろう。
これはShift_JISだろうと思いネットの文字化け修正サイトで直してみた。しかし...
string(265) "?スG?ス?ス?ス[: jlink?スナは趣ソス?ス?ス?ス?ス?スW?ス?ス?ス[?ス?ス?スヘ使?スp?スナゑソス?スワゑソス?ス?ス: file:///C:/Users/mfmii/.m2/repository/net/synedra/validatorfx/0.1.13/validatorfx-0.1.13.jar?ス?ス?ス?ス?スvalidatorfx"
逆に解読不可能になった。
解決策1
とりあえずもじばけらったを使用して総当りしてみる。
結果: 惨敗
もう解読不可なんてレベルじゃないナニかができた
解決策2
Intellij IDEAでjavaの文字コード、言語を切り替えてとりあえず英語でもなんでもいいから出そうとしてみる。
結果: 変わらない
どんだけ設定いじっても文字化けしたままだった
解決策3
Intellij IDEAのコンソール出力をShift_JISに切り替えてみる。
結果: どうやって変えるのかわからない
教えて下さい...
最終解決策
Intellij IDEAを使わずにコマンドプロンプトから実行する。
cd /d G:\...\demo\
C:\Users\mfmii\.jdks\adopt-openjdk-11.0.12\bin\java.exe <省略> clean javafx:jlink
結果: できた
結局Shift_JISで正しかったらしい
ちなみにエラーはこいつだった
エラー: jlinkでは自動モジュールは使用できません: file:///C:/Users/mfmii/.m2/repository/org/yaml/snakeyaml/1.29/snakeyaml-1.29.jarからのorg.yaml.snakeyaml
このためにテスト前の貴重な時間の3時間かけたのにこのオチだとなんか悲しいかな...