Linux: Befehl zum Öffnen der URL im Standardbrowser


75

Welchen Befehl müssen wir (unter Java, aber das sollte keine Rolle spielen) unter Linux (verschiedene gängige Distributionen) ausführen, um eine bestimmte URL im Standardbrowser zu öffnen?

Antworten:


104

Die am weitesten verbreitete ist xdg-open http://stackoverflow.com


8
Leider nicht in RHEL
Ondra Žižka

@ OndraŽižka vernünftiger Browser ist auch nur Debian, nicht wahr? Was würde in RHEL funktionieren?
cmc

1
Es existiert in RHEL, installieren Sie das Paket 'xdg-utils'.
Tim Peters

In meinem Debian 7 nicht vorhanden. Müssen stattdessen 'wget' verwenden.
estornes

In Debian ist es auch das Paket "xdg-utlls", genau wie in RHEL.
Sleske

30

Ich glaube, die einfachste Methode wäre die Verwendung von Python:

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

5
klappt wunderbar. auch plattformübergreifend (funktioniert zumindest unter Mac & Linux)
Paul Liang

Auch unter Windows, wenn Python installiert ist.
Mikhail Gerasimov

Ich mag diese Lösung besser für einen plattformübergreifenden Anwendungsfall, aber nur für Linux dauert die Ausführung auf meinem System etwa 7-8x so lange wie xdg-openfür dieselbe URL.
Taylor Edmiston

Nur als Hinweis für Leute, die dies unter Windows ausführen: Ich habe festgestellt, dass es häufig den Internet Explorer öffnet. (anstelle der vom Benutzer konfigurierten Standardeinstellung) Aber es funktioniert, denke ich. 😅
Lazerbeak12345


8

In Java (Version 6+) können Sie außerdem Folgendes tun:

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

Dies funktioniert jedoch nicht unter allen Linuxen. Zum Zeitpunkt des Schreibens wird Gnome unterstützt, KDE nicht.



4

Ich denke, die Verwendung xdg-open http://example.comist wahrscheinlich die beste Wahl.

Falls sie es nicht installiert haben, haben sie möglicherweise nur kde-openoder gnome-open(beide benötigen eine einzelne Datei / URL) oder eine andere Problemumgehung, z. B. das Durchlaufen allgemeiner ausführbarer Browsernamen, bis Sie einen finden, der ausgeführt werden kann (mit welchem ). Wenn Sie eine vollständige Liste der Problemumgehungen / Fallbacks wünschen, empfehle ich das Lesen von xdg-open (es ist ein Shell-Skript, das kde-open / gnome-open / etc. Oder einen anderen Fallback aufruft).

Da xdg-open und xdg-mime (für einen der Fallbacks verwendet) Shell-Skripte sind, würde ich empfehlen, sie in Ihre Anwendung aufzunehmen. Wenn der Aufruf which xdg-openfehlschlägt, fügen Sie sie der temporären PATH-Variablen in Ihrer Unterprogrammumgebung hinzu und rufen Sie sie auf. Wenn xdg-open fehlschlägt, würde ich empfehlen, eine Ausnahme mit einer Fehlermeldung von der Ausgabe auf stderr auszulösen, die Ausnahme abzufangen und die Fehlermeldung zu drucken / anzuzeigen.

Ich würde die Java awt Desktop-Lösung ignorieren, da der Fehler darauf hindeutet, dass sie nicht planen, bald Nicht-Gnome-Desktops zu unterstützen.


3

Bei Distributionen, die mit dem Befehl open geliefert werden,

$ open http://www.google.com

3
Unter Ubuntu 16.04 funktioniert es nicht, weil versucht wird, eine Datei zu öffnen.
Omikron

Funktioniert möglicherweise nicht unter Linux, funktioniert aber unter Mac OSX
Atav32 vor

2
###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)

4
Bitte erwägen Sie, Ihrer Antwort einige Details hinzuzufügen.
Shamas S

Wenn Sie einen dieser Befehle in einem Shell-Skript verwenden, müssen Sie zuerst testen, ob sie vorhanden sind (z. B. Befehl -v $ CMD). $? = 0
JimmyLandStudios

1

Ich denke, eine Kombination aus xdg-open, wie von shellholic beschrieben, und - falls dies fehlschlägt - der Lösung, einen Browser mit dem hierwhich beschriebenen Befehl zu finden, ist wahrscheinlich die beste Lösung.


1

Zum Öffnen einer URL im Browser über das Terminal können CentOS 7-Benutzer den Befehl gio open verwenden. Wenn Sie beispielsweise google.com gio open https://www.google.comöffnen möchten, wird die google.com-URL im Browser geöffnet.

xdg-open https://www.google.comfunktioniert auch, aber dieses Tool ist veraltet. Verwenden Sie gio openstattdessen. Ich bevorzuge dies, da dies der einfachste Weg ist, eine URL mit einem Befehl vom Terminal aus zu öffnen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.