Linux:在默认浏览器中打开URL的命令


75

为了在默认浏览器中打开给定的URL,我们必须在Linux(不同的公共发行版)上执行(从Java,但这无关紧要)什么命令?

Answers:



30

我相信最简单的方法是使用Python:

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

5
奇迹般有效。也跨平台(至少适用于Mac和Linux)
Paul Liang

如果已安装Python,也将在Windows上。
Mikhail Gerasimov

对于跨平台的用例,我更喜欢此解决方案,但是仅对于Linux,xdg-open与相同的url相比,在我的系统上运行确实需要大约7-8倍的时间。
泰勒·埃德米斯顿

就像给在Windows上运行此程序的人的注释:我发现它经常打开Internet Explorer。(而不是用户配置的默认值),但我想它确实有效。😅–
Lazerbeak12345


8

在Java(版本6+)中,您还可以执行以下操作:

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

尽管这不适用于所有Linux。在撰写本文时,支持Gnome,但不支持KDE。



4

我认为使用xdg-open http://example.com可能是最好的选择。

万一他们没有安装它,我想他们可能只是kde-opengnome-open(两者都使用一个文件/ URL)或其他解决方法,例如循环浏览器可执行文件的通用名称,直到找到可以执行的名称(使用)。如果您想要一个完整的解决方法/回退列表,建议阅读xdg-open(这是一个shell脚本,它调用kde-open / gnome-open / etc或其他回退)。

但是由于xdg-open和xdg-mime(用于回退之一)是shell脚本,因此我建议将它们包括在应用程序中,如果调用which xdg-open失败,则将它们添加到子程序环境中的临时PATH变量中并对其进行调出。如果xdg-open失败,建议从它在stderr上输出的内容引发一个带有错误消息的异常,并捕获该异常并打印/显示错误消息。

我会忽略java awt Desktop解决方案,因为该错误似乎表明他们不打算在短期内支持非gnome桌面。



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
请考虑在您的答案中添加一些细节。
Shamas S 2015年

在Shell脚本中使用这些命令中的任何一个时,您需要测试它们是否首先存在(例如,命令-v $ CMD)。$?= 0
JimmyLandStudios

1

我认为,如shellholic所描述的xdg-open和-如果失败的话-使用此处which描述的命令查找浏览器的解决方案可能是最好的解决方案。


1

为了通过终端在浏览器中打开URL,CentOS 7用户可以使用gio open命令。例如,如果您要打开google.com,则将gio open https://www.google.com在浏览器中打开google.com URL。

xdg-open https://www.google.com也可以使用,但不建议使用此工具,请gio open改用。我喜欢这样做,因为这是使用终端命令打开URL的最简单方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.