我注意到来自 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 中的错误还是我错过了什么?