Есть ли способ заставить сообщение об исключении быть английским для Java 1.7

Я почти все пробовал, включая:

  • Измените регион и язык системы на "английский US"
  • Использовать Locale.setDefaultLocale()
  • Передать аргументы JVM

Он печатает:

Default locale is : en_US

НО мое приложение все еще бросает исключение с китайским сообщением о исключении

Имеет ли это какое-либо отношение к Spring? (мое приложение основано на Spring, но нет никакой конфигурации, связанной с локалью, поэтому нужно просто использовать все, что по умолчанию)

Может ли кто-нибудь помочь мне с этим?

UPDATE:

В основном я получаю java.io.IOException с китайским сообщением, эквивалентным

существующее соединение было принудительно закрыто удаленным хостом

изменение языкового стандарта, похоже, не повлияло на это, может быть, это действительно вещь уровня ОС?

Ответ 1

"Существующее соединение было принудительно закрыто удаленным хостом" является стандартным сообщением об ошибке из библиотеки Windows Sockets (код 10054).

При получении сообщения об ошибке для кода ошибки спецификация FormatMessage говорит, что во внимание будет учитываться пользователь или система. Насколько мне известно, установка этого региона и языка на английский язык должна сделать это. Возможно, китайская версия Windows просто не содержит сообщений на английском языке?

Ответ 2

Throwable.getLocalizedMessage() может работать, предполагая, что библиотека, которую вы используете, предоставляет локализованные сообщения об исключениях.