Linux: command to open URL in default browser

2019-01-16 11:02发布

What command we have to execute (from Java, but that should not matter) on Linux (different common distributions) to open a given URL in the default browser?

9条回答
Luminary・发光体
2楼-- · 2019-01-16 11:17

On distributions that come with the open command,

$ open http://www.google.com
查看更多
Summer. ? 凉城
3楼-- · 2019-01-16 11:17

I think using xdg-open http://example.com is probably the best choice.

In case they don't have it installed I suppose they might have just kde-open or gnome-open (both of which take a single file/url) or some other workaround such as looping over common browser executable names until you find one which can be executed(using which). If you want a full list of workarounds/fallbacks I suggest reading xdg-open(it's a shell script which calls out to kde-open/gnome-open/etc. or some other fallback).

But since xdg-open and xdg-mime(used for one of the fallbacks,) are shell scripts I'd recommend including them in your application and if calling which xdg-open fails add them to temporary PATH variable in your subprograms environment and call out to them. If xdg-open fails, I'd recommend throwing an Exception with an error message from what it output on stderr and catching the exception and printing/displaying the error message.

I would ignore the java awt Desktop solution as the bug seems to indicate they don't plan on supporting non-gnome desktops anytime soon.

查看更多
聊天终结者
4楼-- · 2019-01-16 11:19

The most cross-distribution one is xdg-open http://stackoverflow.com

查看更多
可以哭但决不认输i
5楼-- · 2019-01-16 11:20

I believe the simplest method would be to use Python:

python -m webbrowser "http://www.example.com/"
查看更多
Root(大扎)
6楼-- · 2019-01-16 11:20
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楼-- · 2019-01-16 11:29

on ubuntu you can try gnome-open.

$ gnome-open http://www.google.com

查看更多
登录 后发表回答