java.util.logging からの Level クラスのローカライズされたメッセージが Java7 で機能しないことに気付きました。の読み込みに問題があるようRessourceBundle
ですsun.util.logging.resources.logging
次のスニペットを考えてみましょう
Locale.setDefault(Locale.GERMANY);
String msg = Level.SEVERE.getLocalizedName();
System.err.println(msg);
Java 6では印刷されます
SCHWERWIEGEND
Java 7では印刷されます
SEVERE
Locale クラスが jdk7 で再実装されたことを説明する記事を読みました。それでも、これはおかしいようです。Java 7の設定も試してみました
Locale.setDefault(Category.DISPLAY, Locale.GERMANY);
then
Locale.setDefault(Category.FORMAT, Locale.GERMANY);
finally
System.setProperty("sun.locale.formatasdefault", "true");
しかし、どちらも機能していないようです。
これは JVM のバグですか、それとも何か見逃していましたか?