Изменяется ли содержимое java.lang.System.properties в зависимости от локали? - PullRequest
1 голос
/ 21 июля 2011

Я не привык учитывать вещи i18n. Я написал этот метод для программы Java:

boolean isWindows()
{
    return System.getProperty("os.name").toLowerCase().contains("windows");
}

Мне нужна эта проверка, чтобы предоставить обходной путь для ошибки JVM для Windows.

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

Может быть, я должен уточнить, что я спросил об этом, надеясь увидеть, какие доказательства люди могут добыть (так что я чувствую себя лучше, выпуская этот код на волю). Предпочтение отдается ответам со ссылками на документацию, экспериментальные данные или какое-либо обоснование.

Ответы [ 3 ]

3 голосов
/ 21 июля 2011

Позвольте мне сказать прямо, вам интересно, может ли имя ОС (возвращаемое свойством os.name) быть интернационализированным и содержать слово windows на другом языке?

Я бы хотелскажем, что на 99% это не так, как Microsoft Windows является товарным знаком (или что-то еще, IANAL ) и, вероятно, не переведен и оставлен как есть.Однако я посмотрел определение свойства IS_OS_WINDOWS в классе Apache Commons Lang SystemUtils .После удаления всех слоев косвенности все сводится к следующему:

System.getProperty("os.name").startsWith("Windows");

Я не утверждаю, что это доказательство, но я склонен верить в такие хорошо зарекомендовавшие себя библиотеки.

1 голос
/ 21 июля 2011

Как сказал Томаш и Эдвард, «os.name» можно проверить с помощью «startWith», но ответив «Изменяется ли содержимое java.lang.System.properties в зависимости от локали?» , выНеобходимо заметить, что некоторые свойства System.getProperties могут изменяться в зависимости от локали.Печатая свойства с помощью различных LANG Linux, я нашел три свойства, которые меняются: «user.country», «user.language» и «sun.jnu.encoding».

0 голосов
/ 21 июля 2011

System.getProperty("os.name").startsWith("Windows") безопасно независимо от локали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...