WindowsにOracleのJDKをインストールしてbashからjavaやjavacコマンドを実行すると文字化けします。
これは、デフォルト設定のCygwinではUTF-8になっているためです。
最近のソースはほとんどUTF-8なので、Cygwinを使う方は、UTF-8のままでviやemacsを使いたい方が多いと思います。
そこで、java/javacコマンドに文字コードのオプションを渡すことにより文字化け解消やファイルの文字コードをUTF-8に設定する方法を以下に記します。
localeコマンドを実行したときの出力です。
utf8になているのが確認できます。
$ locale
LANG=ja_JP.utf8 LC_CTYPE="ja_JP.utf8" LC_NUMERIC="ja_JP.utf8" LC_TIME="ja_JP.utf8" LC_COLLATE="ja_JP.utf8" LC_MONETARY="ja_JP.utf8" LC_MESSAGES="ja_JP.utf8" LC_ALL=
Windows版のJDKをインストールしてjava/javacコマンドを実行したときの出力です。
文字化けしてます。
以下のオプションにより、文字化けがなくなります。
java -Duser.language=ja -Dfile.encoding=UTF-8user.language=jaで日本を指定し、file.encodingでUTF-8を指定しています。
javac -J-Dfile.encoding=UTF-8file.encodingでUTF-8を指定しています。
毎回上記のオプションをタイプするのは面倒なので、.bashrcに以下のaliasを追加します。
alias javac='javac -J-Dfile.encoding=UTF-8' alias java='java -Duser.language=ja -Dfile.encoding=UTF-8'
以上、WindowsのCygwin環境でjava, javacを快適に使用する方法でした。