微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取systeminfo语言环境 – Locale.getDefault

目前我的系统语言环境是en-UK ,它曾经是en-US (我已经重新启动了我的计算机,使此更改生效)

当我打印Locale.getDefault().getCountry().toString()我仍然得到美国。

在API中说:

getDefault()

COM对象从一个程序实例化,但不是在同一个用户下运行的另一个程序

对话框 – 没有构造函数

树莓派2与Windows 10 IOT阅读TLC2578 ADC

使用jsoncurlcouchDB以更新cors

Scrapy与TOR(Windows)

获取Java虚拟机的此实例的认语言环境的当前值。

也许JVM语言环境与系统区域设置无关? 如果是这样,我如何获得Windows上的系统区域设置?

编辑:

在研究了关于这个问题的其他问题之后,我发现说我正在处理Java 6是很有用的。

我刚刚发现在我的操作系统(Windows 7)上,系统语言环境的变化没有反映在Java中,但是控制面板>区域和语言>格式变化反映出来。

我忽略了一些东西,在生产代码中设置了osgi.nlconfiguration属性,改变了Locale.getDefault将返回的内容

file.canWrite(); file.canRead(); file.canExceute(); 总是返回true,虽然我的文件/目录没有访问权限

为什么D不允许嵌套函数的重载?

ShowWindow无效的窗口句柄

在没有可见的控制台窗口的Windows中创build后台进程

什么是程序终止自己的进程的正确方法(Windows)

您的JVM语言环境和系统语言环境确实可能有所不同。 当第一次加载JVM时,它将它的语言环境设置为与系统的语言环境相同,除非您在命令行中另外指定(不是所有的实现都允许您这样做)。 您可以从Locale.getDefault()看到此JVM语言环境的值。

如果你想改变,你可以: Locale.setDefault("<preferred_locale>") 在这里阅读更多关于它 。

系统区域设置取决于您正在使用的操作系统。 我不太了解Windows,但可以从System.getEnv()看到值。 它返回所有环境属性的Map<String,String> ,并且可以查找类似LANG或GDM_LANG等的内容

国家变体取自Windows语言环境扩展对话框中的“非Unicode”设置。

Sun JDK 6u27 +和JDK 7中存在bug BugId 7073906 :

Locale.getDefault()返回的语言环境是en_US,当它是en_GB时。

我想这是什么在这里咬你:)

我在生产中实现了一个参数WAS,该参数改变了Locale.getDefault()的返回值。 这很难检查/证明。

我的解决方案是user.country和user.language没有改变,反映了实际的语言环境。

Locale locale = new Locale(System.getProperty("user.language"),System.getProperty("user.country")); Locale.setDefault(locale); //this will do the trick for me

非常感谢所有回答和评论的人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐