Java 7 缺省语言环境

2022-09-01 15:25:40

我刚刚安装了jre7,我很惊讶地发现我的默认区域设置现在en_US。有了jre6,它de_CH。

jre7有什么不同?默认区域设置不再是操作系统的区域设置吗?(顺便说一句,我使用的是Windows7)

谢谢你的答案。

编辑:我看到Category.FORMAT的区域设置是“旧”的(de_CH)。Category.DISPLAY 的区域设置从操作系统的语言中获取语言(在 Windows 中,这是在控制面板中完成的,>区域和语言>键盘和语言>显示语言),而 contry 来自...?

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


答案 1

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

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

在此处阅读错误报告:Locale.getDefault() 返回错误的 Java SE 7 的 Locale


答案 2

博客文章兼容性页面上很好地描述了此更改。

请注意,通过将系统属性设置为 ,可以恢复到旧行为。sun.locale.formatasdefaulttrue


推荐