gpt4 book ai didi

java - 在java中检测windows系统区域设置

转载 作者:行者123 更新时间:2023-12-02 12:27:30 25 4
gpt4 key购买 nike

Java Locale.getDefault() 在 Windows 上始终返回 en-US,即使系统区域设置设置为不同的语言(通过区域和语言控制面板)。运行诸如 systeminfo | 之类的脚本Java Runtime.exec() 内的 findstr/C:\"System Locale\ 需要大量时间。

是否有更快的方法来检测(java)应用程序启动时的系统区域设置?运行上述命令一次并写入属性文件以供后续读取可能是一种解决方案。但是如果系统区域设置发生更改并且系统重新启动怎么办?在 jdk 中查找系统语言环境的更可靠方法是什么?

最佳答案

Locale.getDefault() 返回当前 JVM 的默认区域设置,而不是操作系统的默认区域设置。对于大多数 JVM,JVM 的默认区域设置默认为 en-US(可能有本地化的区域设置,但我从未见过)。

可以使用 Locale.setDefault(Locale newDefault) 将其设置为其他内容,之后 Locale.getDefault() 将返回该 Locale。

因此,解决您的问题的一个解决方案可能是使用您曾经拥有的命令获取默认系统区域设置,在启动应用程序时使用 Locale.setDefault() 将其设置为新的 JVM 默认值,然后使用 Locale.getDefault() 再次检索该内容。

关于java - 在java中检测windows系统区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45429214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com