🗓️

IntelliJ IDEAで『gradle jigReports』をしたらhtmlファイルが文字化けちゃった...Orzのときにやったこと✨

3 min read

<障害発生日>
2021年6月19日 ~ 6月21日あたり

<ざっくりとした環境情報>
OS:Windows10
IDE:IntelliJ IDEA Community Edition 2021.1.1 ※ここかなり重要
言語:Java (jdk-13.0.2)
Frame Work:SpringBoot version 2.5.0
Gradle: version 7.0.1
JIG: version '2021.6.2'
Graphviz: version 2.38

さてさてみなさんおはようございます。
タイトルにございます『gradle jigReports』とは、Javaのクラスファイルの内容から設計図などを出力する『JIG』というソフトウェアのツールを実行するためのコマンドとなります。

ちなみに、この『JIG』を動かすためには『Graphviz』というソフトウェアのインストールが事前に必要になります。。。

今回はそんな『JIG: version '2021.6.2'』を『IntelliJ IDEA』で実行したときに出くわしたトラブルのご報告になります。

『gradle jigReports』で出力されたHTMLにこんな文字化けが。。。

さて、さっそく本題に入りますが、『IntelliJ IDEA』にあるターミナル経由で『gradle jigReports』を実行したところ、出力された「application.html」など拡張子に「html」のつくファイルにこんな文字化けが。。。

原因:Windows上の『IntelliJ IDEA』の最新バージョンで起きてるデグレードっぽい

『IntelliJ IDEA』関連でいろいろとググってみるとこんな記事が。

https://blog.jetbrains.com/ja/2020/03/24/2872/

おそらくこれに関連するデグレードかなにかで、現在、下記のような事象が起きているっぽい。

JVM実行時にわたすパラメーターファイル『.vmopitonsファイル』の「-Dfile.encoding=UTF-8」が有効になっていない』

対応策:『.vmopitonsファイル』の「-Dfile.encoding=UTF-8」をコメントアウトしてWindowsの『ユーザー環境変数』に『JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8』を追加する

今回、前置き長くてスンマソン(;^_^A
上記が『IntelliJ IDEA』がアップデートされるまでの『暫定的な』解決策になるかと思います。。。

以下、設定方法の詳細になります。

①『IntelliJ IDEA』起動 > ヘルプ > カスタムVMオプションの起動

②出てきた『idea64.exe.vmoptions』ファイルの「-Dfile.encoding=UTF-8」を「#」でコメントアウト

ちなみにこれ、ご使用されてる環境によってファイル名微妙に違うかもしれません(;^_^A

③Windowsの『環境変数』画面を開き、『ユーザー環境変数』に『JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8』を追加

『ユーザー環境変数』ですからね~✨
余計な打ち間違いにご注意✨

④『IntelliJ IDEA』を再起動して再度『gradle jigReports』を実行

「ターミナル」にて『gradle jigReports』を実行してくださ~い

⑤JIGが出力したhtmlファイルをブラウザなどで再確認

ちゃんとここまで確認しましょう✨
「遠足」と同じですww

余談)真の原因はjarファイル内に含まれるhtmlファイルが「OS標準」の文字コードで処理されていること✨

はい、上記までの対応で「エラーもワーニングもなく」快適な『IntelliJ IDEA』での開発ライフが送れるわけなんですが、そもそもなぜこんな文字化けが起きているかと言うと、

外部ライブラリなどのjarファイルを「javaコマンド」で実行するとき、jarファイル内のhtmlファイルなどのリソースファイルが「OS標準」の「Shift_JIS」に変換されてしまうからっぽいです(;^_^A

ちなみに、Java関連の環境変数についてご興味のある方は下記のまとめサイトをどうぞ。

https://www.gwtcenter.com/env-vars-used-by-java

余談②)『.vmopitonsファイル』の「-Dfile.encoding=UTF-8」をコメントアウトしない場合、IDEのイベントログにワーニングメッセージが発生してうざい

Windowsの『ユーザー環境変数』に『JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8』を追加しただけですと、『IntelliJ IDEA』を起動時にこんなメッセージが出ます。。。はい。

2021/06/21
7:40	Java オプションの環境変数が使用されていることを検出しました。このような変数は IDE の構成ファイル (*.vmoptions) に優先され、パフォーマンスや安定性の問題を引き起こす可能性があります。これらの変数を削除することを検討してください: JAVA_TOOL_OPTIONS。

結びに

はい、今回は以上です✨

ちなみに、上記

「Windowsの『ユーザー環境変数』に『JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8』を追加」

を実行すると、今度は

『IntelliJ IDEA』のターミナル上の日本語メッセージが文字化けに。。。

これについてはまた後ほど✨

それでは、また~✨

追記)
2021/7/3に、上記ターミナル上の日本語の文字化けについて投稿しました✨
もしよろしければお読みください✨✨

https://zenn.dev/kagaminpower003/articles/9e9b6f4b02dea1

Discussion

ログインするとコメントできます