Как навсегда изменить язык Java по умолчанию в Windows - PullRequest
4 голосов
/ 10 июля 2009

Мне нужно изменить локаль по умолчанию, которую использует Java на компьютере с Windows 2008 Server. Java устанавливается как часть установки сервера приложений Oracle +. Я могу сделать это в коде, но мне нужно постоянно изменять этот параметр.

Edit: я должен отметить, что мы говорим о jsp страницах, обслуживаемых через сервер приложений, поэтому я не могу точно передать аргументы командной строки в java. Также региональные и языковые параметры машины уже установлены на то, что мне нужно (греческий). Язык Java по умолчанию по-прежнему en_US вместо el_GR.

Редактирование и решение: я портировал существующее приложение на новый сервер. Приложение приняло языковой стандарт по умолчанию как само собой разумеющееся, что не очень хорошо работало на новом сервере (он работает на моей машине во всей своей красе). Я надеялся, что мне не нужно трогать сам код, но в итоге решил явно указать код языка по умолчанию в файле, который уже включен на всех страницах. Не самое элегантное решение, но оно работает.

Ответы [ 5 ]

6 голосов
/ 12 декабря 2009

На самом деле я нашел два ответа - НЕПРАВИЛЬНЫЙ, представленный http://java.com/en/download/help/locale.xml, и взломанный, который работает.

Я объясню - я использую французскую многоязычную XP во Франции с французской клавиатурой - но я хочу, чтобы мои приложения говорили со мной по-английски. Страница в Sun plain не работает с этой комбинацией - Java все еще говорит со мной по-французски.

Решением HACK было войти в regedit и изменить HKEY_CURRENT_USER \ Control Panel \ International \ Locale с 0000040C на 00000409. Это заставило Java говорить по-английски.

Возвращаясь к инструменту панели управления региональными настройками, я заметил, что это фактически изменило имя в выпадающем списке «Региональные параметры», сохраняя при этом все французское форматирование для чисел, дат и т. Д.

Так что эта страница в Sun просто неправильная !! Java НЕ получает свой LOCALE по умолчанию из настроек на расширенной странице, но из настроек на странице региональных настроек - и ОНИ очень трудно изменить, не испортив ВСЕ эти опции (то есть вы не можете просто изменить язык и оставьте число / дату / и т. д. как есть).

Кто-нибудь знает, как передать эту информацию Солнцу ???

6 голосов
/ 10 июля 2009

Будет ли указание локали в команде таким образом, что это начнет работу JVM?

java -Duser.language = код языка 2-символов -Duser.region = код страны 2-символов

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

3 голосов
/ 16 января 2015

Для меня изменение HKEY_CURRENT_USER\Control Panel\International\LocaleName на en-US сделало свое дело. Смена локали, как предложил Мартин Бартлетт, не помогла.

0 голосов
/ 25 октября 2017
  1. user.language и user.country работают, вы можете попробовать следующие примеры:

    java -Duser.language=sv -Duser.country=SE
    java -Duser.language=en -Duser.country=US

  1. Если вы хотите, чтобы jvm выбирал его по умолчанию, вы должны установить переменную окружения JAVA_TOOL_OPTIONS, , она работает и в Windows (за исключением того, что установка переменной окружения немного отличается в Windows) !

    export JAVA_TOOL_OPTIONS="-Duser.language=en -Duser.country=US"

Пожалуйста, обратитесь к этому вопросу для деталей JAVA_TOOL_OPTIONS .

0 голосов
/ 10 июля 2009

Я не уверен, как это сделать с помощью Oracle Oracle. Работает ли установка свойств java user.language, user.country и user.variant?.

...