【发布时间】:2010-09-09 00:10:02
【问题描述】:
当我在我的 linux 机器上使用默认的 java 语言环境时,它会显示美国语言环境设置,我应该在哪里更改它以使其具有正确的语言环境?
【问题讨论】:
-
Locale.getavailablelocale() 方法没有返回 en_MY,为什么会这样?它返回 155 个语言环境
-
@kekan : 试试 Locale.getDefault();
当我在我的 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 从启动它的环境变量中收集到这一点,因此您需要确保正确设置了 LANG 和 LC_* 环境变量。
语言环境manpage 包含有关所述环境变量的完整信息。
【讨论】:
user.language=en、user.country=US 和user.country.format=DE。
您可以在 init 期间调用或在命令行中调用 Locale.setDefault() 或 -Duser.language=、-Duser.country= 和 -Duser.variant=。 Here's something on Sun's site.
【讨论】:
对于像jarsigner 这样用Java 实现的工具。
JAVA_TOOL_OPTIONS=-Duser.language=en jarsigner
【讨论】:
如果您想检查 java 使用的语言环境或字符集,这是 JVM 内置的:
java -XshowSettings -version
它会转储它正在使用的大量设置。这样您就可以检查您的LANG 和LC_* 值是否被正确提取。
【讨论】:
您可以在控制台上更改:
$ export LANG=en_US.utf8
【讨论】:
如果您使用的是 Mac,只需使用系统偏好设置 -> 语言并将要测试的语言拖到顶部(在英语之前)即可确保下次打开应用程序时尝试正确的语言环境!
【讨论】:
在linux上,在/etc/default/locale创建文件,内容如下
LANG=en.utf8
然后使用source命令通过运行导出这个变量
source /etc/default/locale
source 命令永久设置变量。
【讨论】:
控制区域设置的一种方法是设置 java 系统属性 user.language 和 user.region。
【讨论】: