EclipseからSwingアプリを起動すると、フォント構成ファイルの情報が無視される(final)

※以下はWindows上で(のみ?)発生する問題です。

原因みっけー!!

  1. Eclipseの、設定、もしくはプロジェクトのプロパティで、テキストファイルのエンコードUTF-8にする。
  2. この状態で「実行」を行うと、システムプロパティ「file.encoding」が「UTF-8」になる。
  3. 複合フォントにおける物理フォントの選択順序は、フォント構成ファイルの「sequence.*」で定義されているが、この定義には文字エンコーディングのタグが含まれる。
  4. 「sequence.*」で使用される文字エンコーディングは「file.encoding」によって決定されるため、(2)の状態だと選択順序の情報が見付けられない。

対策は以下のどちらか。

  1. JVMのオプションに「-Dfile.encoding=windows-31j」を指定する。(プログラム中で直接指定する手もある)
  2. フォント構成ファイルに以下の設定を追加する。(赤字の部分)
(前略)
sequence.dialoginput.windows-31j=alphabetic,japanese,dingbats,symbol

sequence.serif.UTF-8.ja=alphabetic,japanese,dingbats,symbol
sequence.sansserif.UTF-8.ja=alphabetic,japanese,dingbats,symbol
sequence.monospaced.UTF-8.ja=japanese,alphabetic,dingbats,symbol
sequence.dialog.UTF-8.ja=alphabetic,japanese,dingbats,symbol
sequence.dialoginput.UTF-8.ja=alphabetic,japanese,dingbats,symbol

sequence.serif.x-windows-949=alphabetic,korean,dingbats,symbol
(以下略)

アプリを配布するなら(1)が無難……か?