Яку команду ми повинні виконати (з Java, але це не повинно мати значення) в Linux (різні поширені дистрибутиви), щоб відкрити дану URL-адресу в браузері за замовчуванням?
Відповіді:
Найбільш поширеним є такий xdg-open http://stackoverflow.com
Я вважаю, що найпростішим методом було б використання Python:
python -m webbrowser "http://www.example.com/"
xdg-open
для тієї самої URL-адреси.
на ubuntu ви можете спробувати gnome-open.
$ gnome-відкрити http://www.google.com
У Java (версія 6+) ви також можете зробити:
Desktop d = Desktop.getDesktop();
d.browse(uri);
Хоча це не буде працювати на всіх Linux. На момент написання статті Gnome підтримується, а KDE - ні.
Принаймні у Debian та всіх його похідних існує сценарій оболонки "розумного браузера", який вибирає браузер, який найкраще підходить для даної URL-адреси.
Я думаю, що використання 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 найближчим часом.
На дистрибутивах, що постачаються з командою open,
$ open http://www.google.com
###1 Desktop's -or- Console use:
sensible-browser $URL; # Opinion: best. Target preferred APP.
# My-Server translates to: w3m [options] [URL or filename]
## [ -z "$BROWSER" ] && echo "Empty"
# Then, Set the BROWSER environment variable to your desired browser.
###2 Alternative
# Desktop (if [command-not-found] out-Dated)
x-www-browser http://tv.jimmylandstudios.xyz # firefox
###3 !- A Must Know -!
# Desktop (/usr/share/applications/*.desktop)
xdg-open $URI # opens about anything on Linux (w/ .desktop file)
Для відкриття URL-адреси в браузері через термінал користувачі CentOS 7 можуть використовувати команду gio open. Наприклад, якщо ви хочете відкрити google.com, тоді gio open https://www.google.com
у браузері відкриється URL-адреса google.com.
xdg-open https://www.google.com
також буде працювати, але цей інструмент застарів, використовуйте gio open
замість нього. Я віддаю перевагу цьому, оскільки це найпростіший спосіб відкрити URL-адресу за допомогою команди з терміналу.