Macのターミナルでjavacの文字化け

Mac OS Xのターミナルでjavacを使ってみたら、エラーメッセージが文字化けしています。まさかと思ったのですがSJISで出力されるんですね。

調べてみると対策は、

  1. ターミナルの設定の詳細の中の言語環境の文字エンコーディングを「日本語(Shift JIS)」にしたプロファイル作ってjavaのときはこちらを使う。
  2. コマンドラインで「javac -J-Dfile.encoding=UTF-8」のように入力するかaliasとして設定する
  3. 「JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8」を環境変数として設定する
  4. 「LC_ALL=en」として英語モードにする

があるようです(他にもあるようです)。

とりあえず3の方法で設定しました。ところが、javacやjavaを使うと何か出力があるたびに

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 

と表示されてしまいます。これは鬱陶しい。

結局、2番めの方法をaliasとして.bashrcに設定することにしました。

alias javac='javac -J-Dfile.encoding=UTF-8'

ターミナルでちょこっと使う私にはこれで十分かな。