Linux:命令在默认浏览器中打开URL
在Linux(不同的公共发行版)上,我们必须执行哪些命令(来自Java,但不应该这么做),以在默认浏览器中打开给定的URL?
大多数交叉分配的是xdg-open http://stackoverflow.com
在Java(版本6+)中,你也可以这样做:
Desktop d = Desktop.getDesktop(); d.browse(uri);
虽然这不适用于所有的Linux。 在撰写本文时,Gnome支持,而KDE则不支持。
在Ubuntu上你可以试试gnome-open。
$ gnome-open http://www.google.com
我相信最简单的方法是使用Python:
python -m webbrowser "http://www.example.com/"
至less在Debian及其衍生产品上,有一个“明智的浏览器”shell脚本,它select最适合给定url的浏览器。
我认为使用xdg-open http://example.com
可能是最好的select。
如果他们没有安装它,我想他们可能只有kde-open
或者gnome-open
(两者都需要一个文件/ url)或者其他一些解决方法,比如循环浏览器的可执行文件名,直到find一个可以执行(使用哪个)。 如果你想要一个完整的解决方法/回退列表,我build议你阅读xdg-open(这是一个调用kde-open / gnome-open / etc或其他回退的shell脚本)。
但是,由于xdg-open和xdg-mime(用于其中一个回退)是shell脚本,我build议将它们包括在您的应用程序中,如果调用which xdg-open
失败,则将它们添加到子程序环境中的临时PATHvariables,然后调用对他们。 如果xdg打开失败,我build议抛出一个exception与从stderr上输出的错误消息,并捕获exception和打印/显示错误消息。
我会忽略java awt桌面解决scheme,因为这个错误似乎表明他们不打算在短时间内支持非gnome桌面。
我认为是由shellholic所描述的xdg-open的组合,如果失败的话,使用这里描述的which
命令find浏览器的解决scheme可能是最好的解决scheme。
sensible-browser [options] [URL or filename]; # Said to be the best. # Server translates to: echo $BROWSER; w3m [options] [URL or filename] # Desktop (X11): I use/prefer, x-www-browser http://tv.jimmylandstudios.com
在开放命令附带的发行版中,
$ open http://www.google.com