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-open
fü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.com
ist wahrscheinlich die beste Wahl.
Falls sie es nicht installiert haben, haben sie möglicherweise nur kde-open
oder 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-open
fehlschlä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.com
funktioniert auch, aber dieses Tool ist veraltet. Verwenden Sie gio open
stattdessen. Ich bevorzuge dies, da dies der einfachste Weg ist, eine URL mit einem Befehl vom Terminal aus zu öffnen.