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?
相关问题
- Is shmid returned by shmget() unique across proces
- how to get running process information in java?
- TestCafe - The browser always starts in clean slat
- UrlEncodeUnicode and browser navigation errors
- Error building gcc 4.8.3 from source: libstdc++.so
On distributions that come with the open command,
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
orgnome-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.
The most cross-distribution one is
xdg-open http://stackoverflow.com
I believe the simplest method would be to use Python:
on ubuntu you can try gnome-open.
$ gnome-open http://www.google.com