2009-03-02 22 views
34

Webページを開くためのjava GUIを取得しようとしています。だからguiは何かをしてhtmlファイルを生成するいくつかのコードを実行します。 このファイルを作成するとすぐに、このファイルをWebブラウザ(Firefox)に開くようにします。 どうすればいいですか?WebブラウザでWebページを開くためのjava GUIの取得

答えて

39

Java 6以上を使用している場合は、Desktop API、特にbrowseを参照してください。このように使用してください(テストされていません):

// using this in real life, you'd probably want to check that the desktop 
// methods are supported using isDesktopSupported()... 

String htmlFilePath = "path/to/html/file.html"; // path to your new file 
File htmlFile = new File(htmlFilePath); 

// open the default web browser for the HTML page 
Desktop.getDesktop().browse(htmlFile.toURI()); 

// if a web browser is the default HTML handler, this might work too 
Desktop.getDesktop().open(htmlFile); 
+0

ねえの場所することができ

注意。まだそれを働かせることはできません。次のエラーが表示されます。「エラーメッセージ:指定されたパスが見つかりません」これは私が正確な経路を与えているにもかかわらずです。 –

+0

@ TheSpecialOne - ファイルに_local_パスを指定していますか?例:Windowsの場合、htmlFilePathは "c:\ path \ to \ file.html"のようになります。 URL構文を使用しないでください... –

0

私はBrowserLauncher2を成功させました。テストされたすべてのプラットフォームでデフォルトのブラウザが呼び出されます。私はJNLP経由でソフトウェアをデモするためにこれを使用します。ソフトウェアは、ユーザのブラウザを情報ページ/フィードバックなどにダウンロードして実行し、駆動する。

JDK 1.4以上。

+0

ユーザーアクティビティのためにページのURLが変更されると、BrowserLauncher2を使用してその新しいURLを取得できますか? –

26

あなたがデフォルトのウェブブラウザでウェブページをJavaプログラムで開く場合は、このコードを試してみてください。

/// file OpenPageInDefaultBrowser.java 
public class OpenPageInDefaultBrowser { 
    public static void main(String[] args) { 
     try { 
     //Set your page url in this string. For eg, I m using URL for Google Search engine 
     String url = "http://www.google.com"; 
     java.awt.Desktop.getDesktop().browse(java.net.URI.create(url)); 
     } 
     catch (java.io.IOException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
} 
/// End of file 
2

私は、これらの回答のすべてが基本的に質問に答えていることを知っていますが、ここではうまくいかない方法のコードがあります。文字列は、htmlファイル

/** 
* If possible this method opens the default browser to the specified web page. 
* If not it notifies the user of webpage's url so that they may access it 
* manually. 
* 
* @param url 
*   - this can be in the form of a web address (http://www.mywebsite.com) 
*   or a path to an html file or SVG image file e.t.c 
*/ 
public static void openInBrowser(String url) 
{ 
    try 
     { 
      URI uri = new URL(url).toURI(); 
      Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; 
      if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { 
       desktop.browse(uri); 
      } else { 
       throw new Exception("Desktop not supported, cannout open browser automatically"); 
      } 
     } 
    catch (Exception e) 
     { 
      /* 
      * I know this is bad practice 
      * but we don't want to do anything clever for a specific error 
      */ 
      e.printStackTrace(); 

      // Copy URL to the clipboard so the user can paste it into their browser 
      StringSelection stringSelection = new StringSelection(url); 
      Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard(); 
      clpbrd.setContents(stringSelection, null); 
      // Notify the user of the failure 
      WindowTools.informationWindow("This program just tried to open a webpage." + "\n" 
       + "The URL has been copied to your clipboard, simply paste into your browser to access.", 
        "Webpage: " + url); 
     } 
} 
関連する問題