Javaデフォルトロケールがja_USとなった場合のja_JPへの戻し方

日本語版 Windows Server OSではなく英語版を利用されている(後から日本語の言語パックを追加されている)場合や、ColdFusionの起動パラメーターに-Duser.country=USが指定されている(インストール時に"English"を選択された)場合、また、UnixOSでColdFusionを自動起動に設定していた際のOS起動時に、ColdFusion内部で判別するデフォルトJavaロケールが日本(ja_JP)ではなく、英語(en_US)やja_USと認識される場合があります。

特に、ja_USと認識された場合は、ColdFusion Administratorの画面は日本語で表示されるものの、特定のページの設定でエラーが発生したり、関数やタグの動作が通常とは異なる動作になるなど、思わぬトラブルに遭遇します。

【トラブル例】※一例であり、すべてのバージョンで発生するとは限りません

  • タスクスケジュールの登録の際に、エラー(ja_US は ColdFusion でサポートされるロケールのいずれかである必要があります。)が発生する場合がある
  • cfdocumentのデフォルト値が変わる場合がある
  • 日付系関数の結果が異なる場合がある(日本語形式→英語形式の結果になる)

【Javaデフォルトロケールの確認例】

ColdFusion Administrator にログインし、システム情報(画面右上の i アイコン)のページを開きます。「システム情報」の JVM 詳細 の表の中に『Javaデフォルトロケール』の項目があります。


△上記は本来の「ja_JP」となっている例です。

この現象が確認された場合は、ColdFusionの起動パラメーター(JVM引数)に、-Duser.country=JP を指定してColdFusion内部のJavaがロケールをja_JPとして認識するように変更してください。

設定時に ColdFusionの再起動が必要となります。運用中の環境では再起動によりApplication変数やSession変数が消えてしまいますので実行のタイミングにご注意下さい

【参考手順】

  1. ColdFusion Administratorにログインし、「サーバー設定>スケジュールされたタスク」に登録済みのタスクを削除します
  2. 「サーバー設定>JavaとJVM」にて JVM引数に「-Duser.country=JP」を追加します

     【例】 ... -Duser.language=ja -Duser.country=JP -Dcoldfusion.rootDir=...

     ※-Duser.language=enとなっている場合は-Duser.language=jaに変更します
     
  3. ColdFusion 2018 を停止してください
  4. 実行済み(Javaコードにコンパイル済)のキャッシュファイルを削除します
    • [cf_root]/cfusion/wwwroot/WEB-INF/cfclasses 内に存在するすべての .class ファイルを削除します
  5. ColdFusion 2018 を起動します
  6. ColdFusion Administratorにログインし、「ページ情報(画面右上iアイコン)」を開き、「Java デフォルトロケール」がja_JPになっていることを確認します
  7. 再度1.で削除したスケジュールタスクを登録します

(関連記事)Unix環境でシステム起動時にColdFusionを起動すると英語ロケールになる

(2021.11.22 追記)
上記の「システム情報」の『Javaファイルエンコード』がMS932ではなくcp1252となっている場合は、OSのコントロールパネルを起動して、(表示方法:カテゴリ で)[時計と地域]→[地域]と選択し、地域ダイヤログが表示されたら、「管理」タブの[システムロケールの変更]で、現在のシステムロケールを『日本語(日本)』に変更します。変更後、OSを再起動したら、システムロケールの変更が反映されます。
 


記事公開日:2020年07月03日
最終更新日:2021年11月22日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.