Ответ 1
Самый перекрестный дистрибутив - xdg-open http://stackoverflow.com
Какую команду мы должны выполнить (от Java, но это не имеет значения) в Linux (разные общие дистрибутивы), чтобы открыть данный URL в браузере по умолчанию?
Самый перекрестный дистрибутив - xdg-open http://stackoverflow.com
Я считаю, что самым простым методом было бы использовать Python:
python -m webbrowser "http://www.example.com/"
на ubuntu вы можете попробовать gnome-open.
$gnome-open http://www.google.com
В Java (версия 6+) вы также можете:
Desktop d = Desktop.getDesktop();
d.browse(uri);
Хотя это не будет работать на всех Linux. На момент написания Gnome поддерживается, KDE - нет.
По крайней мере, на Debian и всех его производных есть оболочка "разумного браузера" script, которая выбирает браузер, наиболее подходящий для данного URL.
Я думаю, что использование xdg-open http://example.com
, вероятно, лучший выбор.
Если они не установлены, я полагаю, что они могут иметь только kde-open
или gnome-open
(оба из которых берут один файл /url ) или какое-либо другое обходное решение, такое как переключение на обычные исполняемые имена браузера, пока вы не найдите тот, который может быть выполнен (с помощью которого). Если вам нужен полный список обходных решений/резервных копий, я предлагаю прочитать xdg-open (это оболочка script, которая вызывает kde-open/gnome-open/etc или какой-либо другой резерв).
Но так как xdg-open и xdg-mime (используемые для одного из резервных копий), являются оболочечными сценариями, которые я бы рекомендовал включать в их приложение, и если вызов which xdg-open
не позволяет добавить их к временной переменной PATH в вашей среде подпрограмм и обратится к ним. Если xdg-open завершается с ошибкой, я бы рекомендовал бросить исключение с сообщением об ошибке из того, что он вывел на stderr, и поймать исключение и распечатать/отобразить сообщение об ошибке.
Я бы проигнорировал решение для java awt Desktop, поскольку ошибка, похоже, указывает, что они не планируют поддерживать настольные компьютеры без gnome в ближайшее время.
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
Я думаю, что комбинация xdg-open, описанная shellholic, и - если она терпит неудачу - решение найти браузер с помощью команды which
, как описано здесь, вероятно, лучшее решение.
В дистрибутивах, которые входят с командой open,
$ open http://www.google.com
Хороший, действительно полезный, Любой способ, которым я начал использовать wine для программного обеспечения Windows
https://www.feelingwisdom.net/2019/06/machine-learning-applications-and-its.html