解決策も合わせて書きたいと思います。
まず、私のMac OS XのJavaの環境は以下の通りです。
$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-10M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
$ vim Hello.java
public class Hello{
public static void main(String[] args){
System.out.println("Hello in English\n");
System.out.println("こんにちは in English\n");
}
}
$ javac Hello.java
$ java Hello
Hello in English
こんにちは in English
コンソールではうまくいくようです。
しかしSwingではうまくいきません。
$ vim Hello.java
import javax.swing.*;
public class Hello{
public static void main(String[] args){
JFrame frame = new JFrame("こんにちは");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,300);
frame.setVisible(true);
}
}
$ javac Hello.java
$ java Hello
題名が見事な文字化けをしています。
すこし調べた結果、以下のようにするとうまくいくことがわかりました。
文字コードをUTF8 と明示することがミソのようです。
$ javac -J-Dfile.encoding=UTF-8 Hello.java
$ java -Dfile.encoding=UTF-8 Hello
無事解決しました。
エイリアスを設定しておくと便利です。
$ vim ~/.bashrc
#この一行を追記する
alias javac='javac -J-Dfile.encoding=UTF-8'
alias java='java -Dfile.encoding=UTF-8'
【参考文献】
jitsu102の日記