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:
Die am weitesten verbreitete ist xdg-open http://stackoverflow.com
Ich glaube, die einfachste Methode wäre die Verwendung von Python:
python -m webbrowser "http://www.example.com/"
xdg-openfür dieselbe URL.
Auf Ubuntu können Sie Gnome-Open ausprobieren.
$ gnome-open http://www.google.com
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.
Zumindest für Debian und alle seine Derivate gibt es ein Shell-Skript für vernünftige Browser, das den für die angegebene URL am besten geeigneten Browser auswählt.
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.
Bei Distributionen, die mit dem Befehl open geliefert werden,
$ 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)
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.