Eclipseのいくつかのバージョンから、WEBブラウザの起動が標準でサポートされるようになりました。昔は public static void executeBrowser(String url) { // 拡張子が"html"のアプリケーションを開く。 Program program = Program.findProgram("html"); logger.debug("次のURLを開きます: " + url); if (program != null) { program.execute(url); } else { logger.warn("ブラウザが見つかりません。OSのバグくせぇなぁ"); logger.debug("仕方がないので、Windows専用のやり方でやります。"); try { Runtime.getRuntime().exec( new String[] { "rundll32.exe", "url.dll,FileProtocolHandler", url }); } catch (IOException e) { logger.error("Windows限定のやり方でも、ブラウザが見つかりませんでした。OSのバグくせぇなぁ"); } } } などとガリガリ書いてたのですが、いまはブラウザを起動するインタフェースが提供されたり、拡張ポイントで起動ブラウザ制御できたりするみたいです。便利ですね。 ブラウザをプログラムから起動する †ブラウザを起動するのは簡単で、ワークベンチよりブラウザを生成するクラスを取得してブラウザへのポインタを取得するだけです。具体的なコードは以下の通りです。 IWorkbenchBrowserSupport browserSupport = PlatformUI .getWorkbench().getBrowserSupport(); try { IWebBrowser browser = browserSupport.getExternalBrowser(); logger.debug(browser); browser.openURL(new URL("http://www.masatom.in/pukiwiki/")); } catch (PartInitException e) { logger.error("widgetSelected(SelectionEvent)", e); e.printStackTrace(); } catch (MalformedURLException e) { logger.error("widgetSelected(SelectionEvent)", e); e.printStackTrace(); } 簡単ですね。 んー以下、時間ナシ。 起動するブラウザを制御する †拡張ポイントorg.eclipse.ui.browserSupport †ブラウザを生成するクラス AbstractWorkbenchBrowserSupport? †この記事は
現在のアクセス:13704 |