/Src/Dyna/src/ca/uregina/engg/eil/dyna/util/BrowserLauncher.java

https://github.com/harrisonrw/Dyna · Java · 91 lines · 56 code · 9 blank · 26 comment · 12 complexity · 0f89af194080893519d3a39d65c48518 MD5 · raw file

  1. /*
  2. * BrowserLauncher.java
  3. *
  4. * Created on November 15, 2006, 10:50 PM
  5. *
  6. * @author Robert Harrison
  7. *
  8. * Energy Informatics Laboratory
  9. * Faculty of Engineering
  10. * University of Regina
  11. * http://www.uregina.ca/engg
  12. */
  13. package ca.uregina.engg.eil.dyna.util;
  14. import java.lang.reflect.Method;
  15. import javax.swing.JOptionPane;
  16. /**
  17. * Launches the OS's default web browser. From Bare Bones Browser Launch.
  18. * See http://www.centerkey.com/java/browser/
  19. * @author Robert Harrison
  20. *
  21. * Energy Informatics Laboratory
  22. * Faculty of Engineering
  23. * University of Regina
  24. * http://www.uregina.ca/engg
  25. */
  26. public class BrowserLauncher
  27. {
  28. // Operating Systems.
  29. private static final String MAC = "Max OS";
  30. private static final String WINDOWS = "Windows";
  31. // Browsers.
  32. private static final String FIREFOX = "firefox";
  33. private static final String OPERA = "opera";
  34. private static final String KONQUEROR = "konqueror";
  35. private static final String MOZILLA = "mozilla";
  36. private static final String NETSCAPE = "netscape";
  37. // Error messages.
  38. private static final String LAUNCH_ERROR = "Error attempting to launch web browser";
  39. private static final String NO_BROWSER_ERROR = "Could not find web browser";
  40. public static void openURL(String url)
  41. {
  42. String osName = System.getProperty("os.name");
  43. try
  44. {
  45. if (osName.startsWith(MAC))
  46. {
  47. Class fileMgr = Class.forName("com.apple.eio.FileManager");
  48. Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] {String.class});
  49. openURL.invoke(null, new Object[] {url});
  50. }
  51. else if (osName.startsWith(WINDOWS))
  52. {
  53. Runtime.getRuntime().exec("cmd /c start " + url);
  54. }
  55. else
  56. {
  57. // Unix or Linux
  58. String[] browsers = { FIREFOX, OPERA, KONQUEROR, MOZILLA, NETSCAPE };
  59. String browser = null;
  60. for (int i = 0; i < browsers.length && browser == null; i++)
  61. {
  62. if (Runtime.getRuntime().exec( new String[] {"which", browsers[i]}).waitFor() == 0)
  63. {
  64. browser = browsers[i];
  65. if (browser == null)
  66. {
  67. throw new Exception(NO_BROWSER_ERROR);
  68. }
  69. else
  70. {
  71. Runtime.getRuntime().exec(new String[] {browser, url});
  72. }
  73. }
  74. }
  75. }
  76. }
  77. catch (Exception e)
  78. {
  79. JOptionPane.showMessageDialog(null, LAUNCH_ERROR + ":\n" + e.getLocalizedMessage());
  80. }
  81. }
  82. }