Open Browser in Java windows or Linux

A very useful Java code, to open a web browser from Java application in windows or Linux.

package com.mkyong;
 
public class StartBrowser {
 
  public static void main(String args[])
  {
	String url = "http://www.google.com";
	String os = System.getProperty("os.name").toLowerCase();
        Runtime rt = Runtime.getRuntime();
 
	try{
 
	    if (os.indexOf( "win" ) >= 0) {
 
	        // this doesn't support showing urls in the form of "page.html#nameLink" 
	        rt.exec( "rundll32 url.dll,FileProtocolHandler " + url);
 
	    } else if (os.indexOf( "mac" ) >= 0) {
 
	        rt.exec( "open " + url);
 
            } else if (os.indexOf( "nix") >=0 || os.indexOf( "nux") >=0) {
 
	        // Do a best guess on unix until we get a platform independent way
	        // Build a list of browsers to try, in this order.
	        String[] browsers = {"epiphany", "firefox", "mozilla", "konqueror",
	       			             "netscape","opera","links","lynx"};
 
	        // Build a command string which looks like "browser1 "url" || browser2 "url" ||..."
	        StringBuffer cmd = new StringBuffer();
	        for (int i=0; i<browsers.length; i++)
	            cmd.append( (i==0  ? "" : " || " ) + browsers[i] +" \"" + url + "\" ");
 
	        rt.exec(new String[] { "sh", "-c", cmd.toString() });
 
           } else {
                return;
           }
       }catch (Exception e){
	    return;
       }
      return;		
 
}
Tags :

About the Author

mkyong
Founder of Mkyong.com and HostingCompass.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

  • loke

    Thanks

  • http://cs.uoi.gr/~cs091770/ vasilis

    Thank you my friend! That code was right and helpfull :) Added you on facebook! Have a good night !

  • chayabid

    hi.. is it possible to hide the menubar/toolbar in the opening window? would be of much help.

  • Cory B

    Of course the Desktop.getDesktop approach is much more brief, however Runtime.getRuntime().exec() has another issue – you have to consume the resulting input and error streams, otherwise you will find that resources are left open and you will eventually get errors that will appear almost unrelated, such as “too many open files”, etc.

    See this link (old but still relevant) to see how….
    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4

  • Vikas Khandelwal

    I got it open but if i want to insert one button or a link there also then what should I do for this ??
    Thanks in advance..!!!

  • James

    I have a videogame (its a socail game for a lot of people to play at one time together) and when i try to run this method, as if it were a link, it only opens the link/website on my computer. Why is this?

  • Tapan Thaker

    Thanks a ton , helped me a lot :)

  • Daniel Knudsen

    I got i opened :)
    But does anybody know how put a text into the browser?
    Example in Google, how to search on something directly?

    //Daniel

    • chayabid

      Hi Daniel,

      Do one thing.. if you know what to search, go to google, enter the word, hit search. Now copy the url its showing currently, and put in the code like

       
      //String url = &quot;http://www.google.com&quot;; //comment this line
      // I have searched for word pic, u can choose your word.
      String url=&quot;http://www.google.co.in/search?hl=en-IN&amp;source=hp&amp;q=pic&amp;gbv=2&amp;oq=pic&amp;gs_l=heirloom-hp.3..0l10.2906.3547.0.5250.3.3.0.0.0.0.234.656.2-3.3.0...0.0...1c.1.8R_O73gqzd0&quot;;

      Well, but if you have a dynamic word, more expert comments is required… :)

  • phex

    is this all i want hehe thanks again

  • http://www.stumbleupon.com/url/www.abouthomeimprovement.com/ Marvin Heidgerken

    Superb site, where did you come up with the knowledge in this piece of writing? I’m pleased I found it though, ill be checking back soon to see what other articles you have.

  • krishna

    Can it open in a new IE session rather than opening in existing opened session.

  • Miguel

    Thank you

  • Eugene Ryzhikov

    Can be done MUCH easier: Desktop.getDesktop().browse(…) on ANY platform.

  • jun

    That’s great!!!

  • Tom4to

    Thanks a lot!! :)

  • rammohan

    Thanks

    • http://a jlearner

      thanx, but why does it open in ie?? i want it to open in firefox..

      • mkyong

        It’s purposely because IE is your default internet browser