为了在默认浏览器中打开给定的URL,我们必须在Linux(不同的公共发行版)上执行(从Java,但这无关紧要)什么命令?
Answers:
最交叉分布的是 xdg-open http://stackoverflow.com
我相信最简单的方法是使用Python:
python -m webbrowser "http://www.example.com/"
xdg-open
与相同的url相比,在我的系统上运行确实需要大约7-8倍的时间。
在ubuntu上,您可以尝试gnome-open。
$ gnome-open http://www.google.com
至少在Debian及其所有派生工具上,都有一个“明智的浏览器” shell脚本,该脚本选择最适合给定URL的浏览器。
我认为使用xdg-open http://example.com
可能是最好的选择。
万一他们没有安装它,我想他们可能只是kde-open
或gnome-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桌面。
###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)