当我在Linux机器上使用默认的Java区域设置时,它会显示美国区域设置,我该在哪里更改以获取正确的区域设置?
user.language
、user.country
和 user.variant
属性。java -Duser.language=th -Duser.country=TH -Duser.variant=TH SomeClass
我必须在运行于法语环境的机器上运行脚本,但特定的Java程序必须以en_US运行。正如已经指出的那样,以下代码可以实现:
java -Duser.language=en -Duser.country=US ...
或者,
LC_ALL=en_US.UTF-8 java ...
我更喜欢后者。
如果您想检查Java正在使用的语言环境或字符集,这是内置在JVM中的:
java -XshowSettings -version
而且它会输出许多它正在使用的设置。 这样,您可以检查是否正确拾取了您的LANG
和LC_*
值。
我相信Java可以从启动它的环境变量中获取这些信息,因此您需要确保适当设置LANG和LC_*环境变量。
man页面上有关于这些环境变量的完整信息。
您可以在init期间或其他任何时候调用Locale.setDefault()方法,或者在命令行中使用-Duser.language=、-Duser.country=和-Duser.variant=。这里是Sun网站上的一些内容。
对于像jarsigner
这样的工具,它是用Java实现的。
JAVA_TOOL_OPTIONS=-Duser.language=en jarsigner
您可以在控制台上进行更改:
$ export LANG=en_US.utf8
/etc/default/locale
,并按照以下内容填写。LANG=en.utf8
然后使用 source
命令运行以导出此变量。
source /etc/default/locale
source 命令永久设置变量。
控制区域设置的一种方法是设置Java系统属性user.language和user.region。