web-dev-qa-db-fra.com

Linux: commande pour ouvrir l'URL dans le navigateur par défaut

Quelle commande nous devons exécuter (à partir de Java, mais cela ne devrait pas importer) sur Linux (différentes distributions communes) pour ouvrir une URL donnée dans le navigateur par défaut?

63
Mot

Le plus répandu est xdg-open http://stackoverflow.com

86
shellholic

Je crois que la méthode la plus simple serait d’utiliser Python:

python -m webbrowser "http://www.example.com/"
21
Kevin Grant

sur Ubuntu, vous pouvez essayer gnome-open.

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

10
user1203496

Dans Java (version 6+), vous pouvez également effectuer les tâches suivantes:

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

Bien que cela ne fonctionne pas sur tous les Linux. Au moment de la rédaction de ce document, Gnome est pris en charge, pas KDE.

8
Daniel Winterstein

Au moins sur Debian et tous ses dérivés, il existe un script Shell 'navigateur sensible' qui choisit le navigateur le mieux adapté à l'URL donnée.

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

6
krtek

Je pense en utilisant xdg-open http://example.com est probablement le meilleur choix.

Au cas où ils ne l'auraient pas installé, je suppose qu'ils auraient peut-être juste kde-open ou gnome-open (qui prennent tous deux un seul fichier/url) ou une autre solution de contournement telle que la boucle sur les noms d’exécutables de navigateur courants jusqu’à ce que vous en trouviez un qui peut être exécuté (avec lequel). Si vous voulez une liste complète des solutions de contournement/solutions de remplacement, je vous suggère de lire xdg-open (c'est un script Shell qui appelle kde-open/gnome-open/etc. Ou une autre solution de secours).

Mais puisque xdg-open et xdg-mime (utilisés pour l’une des solutions de rechange) sont des scripts Shell, je vous recommande de les inclure dans votre application et si vous appelez which xdg-open ne réussit pas à les ajouter à la variable temporaire PATH dans votre environnement de sous-programmes et à les appeler. Si xdg-open échoue, je vous conseillerais de lancer une exception avec un message d'erreur à partir de ce qu'elle a affiché sur stderr, de capturer l'exception et d'afficher/imprimer le message d'erreur.

J'ignorerais la solution Java awt Desktop car le bogue semble indiquer qu'ils ne prévoient pas de prendre en charge des ordinateurs de bureau autres que des gnomes dans un avenir proche.

4
Roman A. Taycher
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
2

Je pense qu'une combinaison de xdg-open telle que décrite par shellholic et - si elle échoue - de trouver un navigateur utilisant la commande which telle que décrite ici est probablement la meilleure solution.

1
alexsb

Sur les distributions qui viennent avec la commande open,

$ open http://www.google.com
0
Anand Varma