Java 7默认语言环境

Zar*_*rdo 24 java windows locale windows-7 java-7

我刚刚安装了jre7,我很惊讶地看到我的默认语言环境现在是en_US.有了jre6,它就是de_CH.

与jre7有什么不同?默认语言环境不再是操作系统之一吗?(顺便说一句,我使用的是Windows7)

谢谢你的回答.

编辑:我已经看到Category.FORMAT的Locale 是"旧的"(de_CH).Category.DISPLAY的Locale 采用操作系统语言的语言(在Windows中,这是在控制面板>区域和语言>键盘和语言>显示语言中完成的)和来自...的contry?

似乎不同的是属性" user.country ".使用Java6,我得到"CH",而使用Java7,我得到"US".

dre*_*eam 24

这是设计的.Java 7改变了工作方式Locale.getDefault().Oracle已经输入了一个缺陷,但他们基本上都说这是设计的.

总而言之,您必须修改操作系统的显示语言.仅修改区域格式不再足够.

在这里阅读错误报告:Locale.getDefault()为Java SE 7返回错误的Locale

  • 根据错误报告,这个"功能"在Java 8 build 04中得到了修复.因此在Java 8中,我们可以期待正确的行为. (4认同)
  • @dARKpRINCE [修复](https://bugs.openjdk.java.net/browse/JDK-7073906)实际上也被移植到7u4:https://bugs.openjdk.java.net/browse/JDK-2217027 (2认同)

Jen*_*and 15

在此博客文章兼容性页面中对此更改进行了很好的描述.

请注意,您可以通过将sun.locale.formatasdefault系统属性设置为还原为旧行为true.