代码之家  ›  专栏  ›  技术社区  ›  Manos Dilaverakis

如何在Windows上永久更改java的默认区域设置

  •  4
  • Manos Dilaverakis  · 技术社区  · 15 年前

    Edit:我应该注意到,我们讨论的是通过applicationserver提供服务的jsp页面,因此我不能准确地将命令行参数传递给java。 另外,机器的区域和语言选项已经设置为我需要的(希腊语)。Java的默认语言环境仍然是en_US,而不是el\u GR。

    编辑和解决方案:我正在将一个现有的应用程序移植到一个新的服务器上。应用程序理所当然地使用了默认的语言环境,但在新服务器上效果不太好(它在我的机器上运行得非常好)。我希望不必触及代码本身,但最终决定在已包含在所有页面中的文件中的代码中显式设置默认区域设置。不是最优雅的解决方案,但它是有效的。

    5 回复  |  直到 15 年前
        1
  •  6
  •   Martin Bartlett    15 年前

    事实上,我发现有两个答案是错误的 http://java.com/en/download/help/locale.xml 还有那个有用的黑客。

    我会解释——我在法国使用的是一个法语安装的多语言XP,有一个法语键盘——但我希望我的应用程序能用英语跟我说话。sunplant的页面不能使用这种组合——Java仍然可以用法语与我交谈。

    黑客的解决方案是进入regedit并将HKEY_CURRENT_USER\Control Panel\International\Locale从0000040C更改为00000409。这让爪哇说英语。

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

    所以太阳报的那一页是完全错误的!!Java的默认语言环境不是从高级页面的设置中获得的,而是从区域选项页面上的设置中获取的——而且在不破坏所有这些选项的情况下,很难更改这些设置(即,您不能简单地更改语言并保留数字/日期/etc格式)。

        2
  •  6
  •   Chris Povirk    12 年前

    爪哇-Duser.language=2-字符语言代码-杜塞尔区域=2-字符国家代码

    http://www.oracle.com/technetwork/articles/javase/locale-140624.html

        3
  •  3
  •   orbanbalage    10 年前

    HKEY_CURRENT_USER\Control Panel\International\LocaleName en-US 成功了。按照马丁·巴特利特的建议改变地点没有帮助。

        4
  •  1
  •   hao    7 年前
        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"
    
    

    请参考这个 question for details of JAVA_TOOL_OPTIONS