5

Windows 2008 Server マシンで Java が使用するデフォルトのロケールを変更する必要があります。Java は、Oracle + Application サーバーのセットアップの一部としてインストールされます。コードでこれを行うことができますが、この設定を永続的に変更する必要があります。

編集:アプリケーションサーバーを介して提供されるjspページについて話しているので、コマンドライン引数をJavaに正確に渡すことができないことに注意してください。また、マシンの地域と言語のオプションは、必要なもの (ギリシャ語) に既に設定されています。Java のデフォルトのロケールは、el_GR ではなく、依然として en_US です。

編集と解決策:既存のアプリを新しいサーバーに移植していました。アプリは当然のようにデフォルトのロケールを使用していましたが、新しいサーバーではうまく機能しませんでした (すべての栄光の中で、私のマシン上で動作します)。コード自体に手を加える必要がないことを望んでいましたが、最終的に、すべてのページに既に含まれているファイルのコード内でデフォルトのロケールを明示的に設定することにしました。最もエレガントなソリューションではありませんが、うまくいきます。

4

4 に答える 4

7

そのようなコマンドでロケールを指定すると、JVM が機能しますか?

java -Duser.language=2 文字の言語コード -Duser.region=2 文字の国コード

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

于 2009-07-10T13:20:52.310 に答える
6

実際、私が見つけた答えは 2 つあります。

説明します - 私はフランスでフランス語がインストールされた多言語 XP をフランス語のキーボードで使用しています - しかし、私のアプリは英語で私に話しかけたいと思っています。Sun Plain のページはその組み合わせでは機能しません。Java はまだフランス語で私に話しかけます。

HACK ソリューションは、regedit に入り、HKEY_CURRENT_USER\Control Panel\International\Locale を 0000040C から 00000409 に変更することでした。これにより、Java は英語を話します。

地域設定のコントロール パネル ツールに戻ると、実際には、[地域オプション] ドロップダウンの名前が変更されていることに気付きましたが、数字の日付などのフランス語の書式設定はすべて維持されています。

そのため、Sun のそのページは明らかに間違っています!! Java は、詳細ページの設定からデフォルトの LOCALE を取得するのではなく、地域オプション ページの設定から取得します。これらすべてのオプションを台無しにしない限り、変更するのは非常に困難です (つまり、言語と言語を簡単に変更することはできません)。数字/日付/その他の形式はそのままにしておきます)。

その情報をSunに送る方法を知っている人はいますか???

于 2009-12-12T00:30:01.513 に答える
3

私にとっては、に変更するHKEY_CURRENT_USER\Control Panel\International\LocaleNameen-USうまくいきました。Martin Bartlett が提案したようにロケールを変更しても解決しませんでした。

于 2015-01-16T14:00:53.833 に答える
3
  1. user.language と user.country が機能する場合は、次の例を試すことができます。
    java -Duser.language=sv -Duser.country=SE
    java -Duser.language=en -Duser.country=US

  1. jvm にデフォルトで選択させたい場合は、環境変数を設定する必要があります。Windows でもJAVA_TOOL_OPTIONS機能します (環境変数の設定は Windows では少し異なります)
    export JAVA_TOOL_OPTIONS="-Duser.language=en -Duser.country=US"

JAVA_TOOL_OPTIONS の詳細については、この質問を参照してください。

于 2017-10-25T02:36:57.110 に答える