Linux: command to open URL in default browser

后端 未结 10 1726
青春惊慌失措
青春惊慌失措 2020-12-07 17:47

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?

相关标签:
10条回答
  • 2020-12-07 17:48

    On distributions that come with the open command,

    $ open http://www.google.com
    
    0 讨论(0)
  • 2020-12-07 17:50

    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.

    0 讨论(0)
  • 2020-12-07 17:56

    I think a combination of xdg-open as described by shellholic and - if it fails - the solution to finding a browser using the which command as described here is probably the best solution.

    0 讨论(0)
  • 2020-12-07 17:57

    At least on Debian and all its derivatives, there is a 'sensible-browser' shell script which choose the browser best suited for the given url.

    http://man.he.net/man1/sensible-browser

    0 讨论(0)
  • 2020-12-07 17:58
    ###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)
    
    0 讨论(0)
  • 2020-12-07 18:04

    In Java (version 6+), you can also do:

    Desktop d = Desktop.getDesktop();
    d.browse(uri);
    

    Though this won't work on all Linuxes. At the time of writing, Gnome is supported, KDE isn't.

    0 讨论(0)
提交回复
热议问题