如何在Windows上永久更改Java的默认语言环境

5
我需要更改在Windows 2008服务器上使用的Java默认区域设置。Java作为Oracle +应用服务器安装的一部分。我可以在代码中完成此操作,但我需要永久更改此设置。
编辑:我应该指出,我们正在讨论通过应用服务器提供的jsp页面,因此我无法向Java传递命令行参数。此外,机器的区域和语言选项已经设置为我所需的希腊语。 Java的默认区域设置仍然是en_US而不是el_GR。
编辑和解决方案:我正在将现有应用程序移植到新服务器上。该应用程序认为默认区域设置是理所当然的,在新服务器上并不顺利(在我的机器上正常工作)。我希望不必触及代码本身,但最终决定在一个所有页面都已包含的文件中显式设置默认区域设置。这不是最优雅的解决方案,但它有效。

Windows 控制面板 > 区域和语言选项 - akarnokd
你重启了服务器吗?反正你可以在任何语言环境下提供内容,为什么非要改呢? - akarnokd
4个回答

7

6
事实上,我找到了两个答案——一个错误的答案由http://java.com/en/download/help/locale.xml提供,还有一个有效的黑客方法。

我来解释一下——我在法国使用安装了多语言XP系统和法语键盘,但是我希望我的应用程序用英语与我交互。Sun官网上的页面不能满足这种组合——Java仍然用法语与我交互。

黑客方法是进入注册表并将HKEY_CURRENT_USER\Control Panel\International\Locale从0000040C更改为00000409。这样就可以让Java使用英语。

回到区域设置控制面板工具,我注意到这实际上已经在“区域选项”下拉菜单中更改了名称,同时保留了所有的法语数字日期等格式。

所以Sun的页面是错的!!!Java不是从高级页面的设置获取默认的LOCALE,而是从“区域选项”页面的设置获取——如果不想弄乱所有这些选项(即您不能轻松地只更改语言并保留数字/日期/等格式),那么更改这些选项非常困难。

有人知道如何将这些信息传达给Sun吗?


3

对于我来说,将 HKEY_CURRENT_USER\Control Panel\International\LocaleName 更改为 en-US 就解决了问题。像 Martin Bartlett 建议的更改区域设置并没有起作用。


只是对我不起作用,Windows 10,JDK1.8.0_211。 - http8086

3
  1. user.languageuser.country可以使用以下示例进行尝试:
    java -Duser.language=sv -Duser.country=SE
    java -Duser.language=en -Duser.country=US

  1. 如果您想让jvm默认选择它,您应该设置环境变量JAVA_TOOL_OPTIONS在Windows上也适用(除了在Windows上设置环境变量有所不同)
    export JAVA_TOOL_OPTIONS="-Duser.language=en -Duser.country=US"

有关JAVA_TOOL_OPTIONS的详细信息,请参阅此问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接