如何为JVM设置默认语言环境?

Moz*_*ath 140 java globalization localization

我想将我的JVM的默认语言环境设置为fr_CA.有什么可能的选择呢?

我只知道一个选项 Locale.setDefault()

ale*_*oot 146

来自Oracle参考:

应用程序的默认语言环境以三种方式确定.首先,除非您明确更改了默认值,否则该 Locale.getDefault()方法将返回Java虚拟机(JVM)在首次加载时最初确定的区域设置.也就是说,JVM从主机环境确定默认语言环境.主机环境的区域设置由主机操作系统和在该系统上建立的用户首选项确定.

其次,一些Java运行时实现中,应用用户可以通过设置提供的命令行信息覆盖主机的默认语言环境user.language,user.country以及 user.variant系统性能.

第三,您的应用程序可以调用该Locale.setDefault(Locale) 方法.setDefault(Locale aLocale)方法允许您的应用程序设置系统范围(实际上是VM范围的)资源.使用此方法设置默认语言环境后,对Locale.getDefault()的后续调用将返回新设置的语言环境.

  • 添加了Javadoc链接.'Locale'类文档非常广泛. (2认同)

luc*_*smo 141

您可以通过JVM参数在命令行上进行设置:

java -Duser.country=CA -Duser.language=fr ... com.x.Main
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅国际化:了解Java平台中的区域设置 - 使用区域设置

  • 您也可以通过_JAVA_OPTIONS环境变量进行设置. (8认同)
  • 通过[Java 7默认语言环境](http://stackoverflow.com/questions/7107972/java-7-default-locale):`setx _JAVA_OPTIONS -Dsun.locale.formatasdefault = true/m` (2认同)

Ara*_*ram 39

您可以使用JVM args

java -Duser.country=ES -Duser.language=es -Duser.variant=Traditional_WIN
Run Code Online (Sandbox Code Playgroud)


Ant*_*dei 27

在这里的答案中,到目前为止,我们找到了两种更改JRE语言环境设置的方法:

但是,只是作为参考,我想指出,在Windows上,有改变由JRE使用的语言环境的另一种方式,如记录在这里:改变全系统的语言.

注意:您必须使用具有管理权限的帐户登录.

  1. 单击开始>控制面板.

  2. Windows 7和Vista:单击时钟,语言和区域> 区域和语言.

    Windows XP:双击" 区域和语言选项" 图标.

    将出现" 区域和语言选项"对话框.

  3. Windows 7:单击" 管理"选项卡.

    Windows XP和Vista:单击" 高级"选项卡.

    (如果没有"高级"选项卡,则表示您未使用管理权限登录.)

  4. 在" 非Unicode程序语言"部分下,从下拉菜单中选择所需的语言.

  5. 单击确定.

    系统显示一个对话框,询问是使用现有文件还是从操作系统CD安装.确保准备好CD.

  6. 按照指导说明安装文件.

  7. 安装完成后重新启动计算机.

当然,在Linux上,JRE还使用系统设置来确定要使用的语言环境,但是使用说明来设置从发行版到发行版的系统范围语言更改.

  • 虽然此信息可能有用,但我想强调的是,这些步骤因每个操作系统而异,并且对于每个操作系统,您可以设置一个在系统范围内使用的区域设置。当我们没有明确设置默认语言环境时,Java 旨在使用该语言环境作为默认语言环境。所以这个答案中的信息是关于如何在 windows 中而不是在 java 中设置默认语言环境。 (3认同)

Rya*_*ang 10

如果您不想更改系统语言环境而是 JVM,还有另一种选择。您可以设置系统(或用户)环境变量JAVA_TOOL_OPTIONS并将其值设置为-Duser.language=en-US您想要的或任何其他语言区域。


小智 8

你可以这样做:

在此输入图像描述

在此输入图像描述

并捕获语言环境。你可以这样做:

private static final String LOCALE = LocaleContextHolder.getLocale().getLanguage()
            + "-" + LocaleContextHolder.getLocale().getCountry();
Run Code Online (Sandbox Code Playgroud)