Hatena::ブログ(Diary)

今日もスミマセン。

Do you follow me?

2012-01-01

Mac OS X Lion で javac コマンドが文字化けするのを直す

Mac OS X のターミナルで、javac を実行すると、デフォルトの文字エンコーディングがなぜか、Shift JIS になっているせいで文字化けしてしまう。

対処方法を求めてググると、以下の記事がヒットした。

(Mac OS X Tips::Snow Leopard)ターミナルでのJava文字化け対策 - jitsu102の日記

上の記事では、aliasを使った方法で、

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

というふうに、rcファイルに定義しておくことで対処していたが、もうちょっといい方法があるんじゃないかなーと思い、探したら、Stack Overflow に自分が期待していたのに近い回答があった。

環境変数 JAVA_TOOL_OPTIONS にVMを起動するときに渡すオプションを記述しておけば、いちいちjavaのツールを実行するときにオプションを渡さなくても良いらしい。

ということで、自分の場合以下のような記述を、.bashrc に記述することで対処した。

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

ところで、なんで Shift JIS なんでしょうね? 最初っから UTF-8 で良い気がするのに... Windows を基準にしているため?

注意

JAVA_TOOL_OPTIONS では、前述のaliasの例のように'-J'は不要。理由は、'-J'はjavacのオプションで、「Java VM に渡すオプションを指定するためのオプション」であったが、JAVA_TOOL_OPTIONは、それ自体が Java VM に渡すオプションであるため。

参考リンク

JVM(TM) Tool Interface 1.2.1

Software Development Thoughts: Setting the Default Java File Encoding to UTF-8 on a Mac

utf 8 - Setting the default Java character encoding? - Stack Overflow

(Mac OS X Tips::Snow Leopard)ターミナルでのJava文字化け対策 - jitsu102の日記

tinouetinoue 2012/11/11 01:48 JDK6から、UTF-8じゃなくてSJISが使われているそうです。
https://blogs.oracle.com/katakai/entry/netbeans_and_java_for_mac2

snaka72snaka72 2012/11/12 13:23 ふむ、ありがとうございます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/snaka72/20120101/1325403702
リンク元