LinuxマシンでデフォルトのJavaロケールを使用する場合、USロケール設定で表示されますが、正しいロケールで表示されるようにこれを変更するにはどうすればよいですか?
Javaこれが起動された環境変数からこれを収集するので、LANGおよびLC_ *環境変数が適切に設定されていることを確認する必要があります。
ロケール manpage には、上記の環境変数に関する完全な情報があります。
とともに 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 ...
私は後者を好む。
Initまたは何でも Locale.setDefault() または-Duser.language =、-Duser.country =、および-Duser.variant =をコマンドラインで呼び出すことができます。 Sunのサイトに何かあります 。
Javaで実装されるjarsigner
などのツールの場合。
Java_TOOL_OPTIONS=-Duser.language=en jarsigner
コンソールで変更できます:
$ export LANG=en_US.utf8
ロケールまたは文字セットJavaが使用しているものを確認したい場合、これはJVMに組み込まれています。
Java -XshowSettings -version
使用している設定の負荷をダンプします。これにより、LANG
とLC_*
値が正しく取得されます。
Macを使用している場合は、[システム環境設定]-> [言語]を使用し、テストする言語を(英語の前に)ドラッグするだけで、次回アプリを開くときに正しいロケールが試されます。
Linuxでは、/etc/default/locale
に次の内容のファイルを作成します
LANG=en.utf8
次に、source
コマンドを使用して、次のコマンドを実行してこの変数をエクスポートします。
source /etc/default/locale
Sourceコマンドは変数を永続的に設定します。
ロケール設定を制御する1つの方法は、Javaシステムプロパティuser.languageおよびuser.regionを設定することです。