Linux: команда открыть URL в браузере по умолчанию - PullRequest
63 голосов
/ 25 февраля 2011

Какую команду мы должны выполнить (из Java, но это не должно иметь значения) в Linux (различные распространенные дистрибутивы), чтобы открыть данный URL в браузере по умолчанию?

Ответы [ 9 ]

86 голосов
/ 25 февраля 2011

Наиболее распространенным является xdg-open <a href="http://stackoverflow.com">http://stackoverflow.com</a>

21 голосов
/ 07 апреля 2016

Я считаю, что самый простой способ - использовать Python:

python -m webbrowser "http://www.example.com/"
10 голосов
/ 15 февраля 2012

в Ubuntu вы можете попробовать gnome-open.

$ gnome-open http://www.google.com

8 голосов
/ 15 февраля 2012

В Java (версия 6+) вы также можете сделать:

Desktop d = Desktop.getDesktop();
d.browse(uri);

Хотя это не будет работать на всех Linux. На момент написания статьи Gnome поддерживается, KDE - нет.

6 голосов
/ 25 февраля 2011

По крайней мере, в Debian и всех его производных есть сценарий оболочки «разумный браузер», который выбирает браузер, наиболее подходящий для данного URL.

http://man.he.net/man1/sensible-browser

4 голосов
/ 09 апреля 2014

Я думаю, использование xdg-open http://example.com, вероятно, лучший выбор.

В случае, если они не установлены, я полагаю, что они могут иметь только kde-open или gnome-open (оба из которых принимают один файл / URL) или какой-то другой обходной путь, такой как зацикливание на общем исполняемом файле браузераимена, пока вы не найдете тот, который может быть выполнен (с помощью которого).Если вам нужен полный список обходных путей / запасных вариантов, я предлагаю прочитать xdg-open (это сценарий оболочки, который вызывает kde-open / gnome-open / etc. Или какой-то другой запасной вариант).

Но поскольку xdg-open и xdg-mime (используемые для одного из запасных вариантов) являются сценариями оболочки, я бы порекомендовал включить их в ваше приложение, а если вызов which xdg-open завершится неудачно, добавьте их во временную переменную PATH всвою подпрограмму среды и взывать к ним.Если xdg-open завершится неудачно, я бы порекомендовал выдать исключение с сообщением об ошибке из того, что он вывел на stderr, и перехватить исключение и распечатать / отобразить сообщение об ошибке.

Я бы проигнорировал решение java awt Desktop, поскольку эта ошибка, похоже, указывает на то, что в ближайшее время они не планируют поддерживать рабочие столы не-gnome.

2 голосов
/ 01 августа 2015
sensible-browser [options] [URL or filename]; # Said to be the best.
# Server translates to: 
echo $BROWSER;
w3m [options] [URL or filename]
# Desktop (X11): I use/prefer,
x-www-browser http://tv.jimmylandstudios.com
1 голос
/ 15 апреля 2012

Я думаю, что комбинация xdg-open, как описано в shellholic, и - в случае неудачи - решение по поиску браузера с помощью команды which, как описано здесь , вероятно, является лучшим решением.

0 голосов
/ 25 августа 2016

В дистрибутивах, которые поставляются с командой open,

$ open http://www.google.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...