我们必须在Linux(不同的常见发行版)上执行哪些命令(来自Java,但这无关紧要)才能在默认浏览器中打开给定的URL?
答案 0 :(得分:86)
交叉分配最多的是xdg-open http://stackoverflow.com
答案 1 :(得分:19)
我认为最简单的方法是使用Python:
{{1}}
答案 2 :(得分:10)
在ubuntu上你可以试试gnome-open。
$ gnome-open http://www.google.com
答案 3 :(得分:8)
在Java(版本6+)中,您也可以这样做:
Desktop d = Desktop.getDesktop();
d.browse(uri);
虽然这不适用于所有Linux。在撰写本文时,Gnome受到支持,而KDE则不受支持。
答案 4 :(得分:6)
至少在Debian及其所有衍生品上,有一个“敏感浏览器”shell脚本,它选择最适合给定网址的浏览器。
答案 5 :(得分:4)
我认为使用xdg-open http://example.com
可能是最佳选择。
如果他们没有安装它,我认为他们可能只有kde-open
或gnome-open
(两者都采用单个文件/网址)或其他一些解决方法,例如循环常见的浏览器可执行文件名,直到找到一个可以执行的(使用哪个)。如果你想要一个完整的变通方法/后备列表,我建议你阅读xdg-open(它是一个shell脚本,它调用kde-open / gnome-open / etc。或其他一些后备)。
但是由于xdg-open和xdg-mime(用于其中一个回退)是shell脚本,我建议将它们包含在你的应用程序中,如果调用which xdg-open
失败则将它们添加到临时PATH变量在你的子程序环境中,并呼吁他们。如果xdg-open失败,我建议抛出一个异常,并在stderr上输出错误消息并捕获异常并打印/显示错误消息。
我会忽略java awt桌面解决方案,因为该错误似乎表明他们不打算在不久的将来支持非gnome桌面。
答案 6 :(得分:2)
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
答案 7 :(得分:1)
我认为由shellholic描述的xdg-open的组合和 - 如果失败 - 使用which
命令找到浏览器的解决方案可能是最好的解决方案。
答案 8 :(得分: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的最简单方法。
答案 9 :(得分:0)
在open命令附带的发行版上,
$ open http://www.google.com
答案 10 :(得分:0)
如果您使用的是 Windows10(包括 WSL2 *nix shell),您可以尝试:
explorer.exe https://stackoverflow.com
or
cmd.exe /c start https://stackoverflow.com/?foo=bar
很奇怪,但它有效!
注意:在 WSL 的情况下,存在一个已知错误,即禁止将查询参数传递到 url。解决方法是使用“cmd.exe /c start url”