Eclipse で実行すると文字化け

WindowsXP
JDK1.5
Eclipse3.4(Ganymede), 3.5(Galileo)

以前作ったAWTのプログラムを実行すると日本語表示が全て文字化け。
再現するための最小ケースを作成。

public static void main(String[] args) {
  Frame f = new Frame();
  f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {System.exit(0);}
  });
  f.add(new Label("テスト"));
  f.pack();
  f.setVisible(true);
}

以前ちゃんと日本語表示されていたときと違うのはEclipseのバージョンぐらい。

【いろいろ調べてわかったこと】
1.ソースをWindows-31J(MS932)で書くと化けない。
2.ソースをUTF-8で書くと化ける。
3.1と2で、System#getProperties() を使って調べると file.encoding が違う。(1はWindows-31Jで、2はUTF-8だった)

【結論】

Eclipseの最近のバージョン(少なくとも3.4以上)は、ソースファイルのエンコーディングを、VM引数に渡している。
(以前は、OS依存のデフォルトファイルエンコーディングだったのではないか)

とりあえず、 実行時設定でVM引数に「file.encoding=Windows-31J」を付けておくことでファイルのエンコーディングに関係なく正しく日本語が表示されるようになった。