Mac OSX lionでjava compile しようとしたら文字化けで困ってた話

タイトル通りですけど。

こっちはルポ風。かなり見苦しいです。

答えだけ知りたい人はこっち

 

 ひとまずggr

mac java compile 日本語 文字化け - Google 検索

をみて
[Java][Mac OS X] javacのログが文字化けする: Akito's IT技術 メモ
macでjavaを使ってたら文字化けして困った。 - rderaログ
44ATTACK|[mac] Java のコンパイルで文字化けしたらすること

らへんを確認。どうやらjavaがエラーメッセージを日本語で吐き出してるが、ターミナルの日本語エンコードとずれてて文字化けが起こるらしい。 

 

Test.java:4: ?x??:???̕????́A?G???R?[?f?B???O SJIS ?Ƀ}?b?v?ł??܂???B

        System.out.println("n1="+ n1 +"で??);

                                          ^

Test.java:4: ??????e???????‚????Ă??܂???B

        System.out.println("n1="+ n1 +"で??);

                                      ^

Test.java:4: ';' ??????܂???B

        System.out.println("n1="+ n1 +"で??);

                                             ^

Test.java:6: ?\????͒??Ƀt?@?C???̏I???Ɉڂ?܂???

}

 ^

?G???[ 3 ??

?x?? 1 ??

 

 みたいなエラーメッセージみたら初心者は引き返しますよ。普通。

とりあえず

"javac -J-Dfile.encoding=UTF8 hoge"とオプションをつけてエンコードして

"java -Dfile.encoding=UTF8 hoge"と実行したら

日本語出力が正しくされたのを確認。

 

いつもコンパイル/実行するたびにコレじゃあ不格好なので~/.bashrc に予約してしまう。

ターミナルひらいて

pico .bashrcして

alias javac javac -J-Dfile.encoding=UTF8
alias java java -Dfile.encoding=UTF8 

 

つもりだった。

 

~/.bashrc 上記3ファイル内から「source .bashrc」など、ちゃんと書いてロードする
独特だなと思ったのは大体こんな所です。
/etc/bashrc は /etc/profile 内から明示的にロードされている
~/.bashrc はどこかでロードするよう書かないと、読み込まれない
/etc/paths という仕組み

 

リトライ。今度は~/.bash_profileに書く。


alias javac javac -J-Dfile.encoding=UTF8
alias java java -Dfile.encoding=UTF8 

 ターミナルを再起動。

なんか起動時に

-bash: alias: javac: not found
-bash: alias: javac: not found
-bash: alias: java: not found
-bash: alias: java: not found

表示されてる。引用符忘れた( °A°)

alias javac='javac -J-Dfile.encoding=UTF8'
alias java='java -Dfile.encoding=UTF8'
 と書いてターミナル再起動、テスト。ok。解決。