Найти имя дистрибутива Linux из Java - PullRequest
5 голосов
/ 02 декабря 2010

Мы пишем небольшую библиотеку в Java, которая должна собирать информацию из базовой системы. Мы можем прочитать большую часть материала из системных свойств в java, но не можем найти правильный способ извлечь имя дистрибутива при запуске на linux Звонок

System.getProperty("os.name");

вернуть "Linux" (который мы также собираем), но мы ищем способ получить, например, "Ubuntu", а также. Нам нужно это решение в Java, и мы не хотели бы делать какой-то разбор / etc / release

Ответы [ 3 ]

9 голосов
/ 02 декабря 2010

Вы можете попробовать вызвать lsb_release -i, но это не гарантированно сработает.

7 голосов
/ 02 декабря 2010

Надежно и точно сделать это невозможно, лучшее, что я могу предложить, - это взять вывод 'uname -a' и использовать его.

Примечание: это не ограничение Java - просто нет общих (и точных) способов идентификации дистрибутива.

4 голосов
/ 05 декабря 2010

Я обычно использую следующую команду:

cat /etc/issue

Чтение этого файла на Java должно быть довольно простым. Вопрос в том, входит ли этот файл в каждый (или хотя бы в большинстве) дистрибутивов Linux Я нашел это везде, где мне было нужно, хотя это было не нужно очень часто.

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