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?
75
Die am weitesten verbreitete ist xdg-open http://stackoverflow.com
Ich glaube, die einfachste Methode wäre die Verwendung von Python:
quelle
xdg-open
für dieselbe URL.Auf Ubuntu können Sie Gnome-Open ausprobieren.
$ gnome-open http://www.google.com
quelle
In Java (Version 6+) können Sie außerdem Folgendes tun:
Dies funktioniert jedoch nicht unter allen Linuxen. Zum Zeitpunkt des Schreibens wird Gnome unterstützt, KDE nicht.
quelle
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.
http://man.he.net/man1/sensible-browser
quelle
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
odergnome-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.
quelle
Bei Distributionen, die mit dem Befehl open geliefert werden,
quelle
quelle
Ich denke, eine Kombination aus xdg-open, wie von shellholic beschrieben, und - falls dies fehlschlägt - der Lösung, einen Browser mit dem hier
which
beschriebenen Befehl zu finden, ist wahrscheinlich die beste Lösung.quelle
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 Siegio open
stattdessen. Ich bevorzuge dies, da dies der einfachste Weg ist, eine URL mit einem Befehl vom Terminal aus zu öffnen.quelle