Java では動作環境によってデフォルトのロケールやエンコーディングが異なる。この違いによって、 ResourceBundle を利用したときのメッセージの言語 Reader/Writer を使うときのエンコーディング が違ってくる。 ロケールは Locale.setDefault() メソッドでデフォルトを変更することができるが、JVM 起動時のシステムプロパティの設定によっても変更ができるようである。アプリケーション自体に変更を加えられないがデフォルトエンコーディングを変更したいときにはこの方法を使う。具体的には JVM のコマンドラインオプションを以下のように設定する。 -Duser.language=en -Duser.region=USこうすることで JVM 上でのデフォルトロケールが en_US になる。 同様に文字のエンコーディングを変えたいときには以下のように設定する。 -