web-dev-qa-db-ja.com

Java guiを使用してWebブラウザでWebページを開く

Java guiを取得してWebページを開くことを試みています。そのため、GUIがコードを実行してHTMLファイルを生成します。このファイルをWebブラウザーで開きます。 (できればFirefox)作成されたらすぐに。

34
The Special One

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);
39
Dan Vinton

Ya、しかし、JavaプログラムによってデフォルトのWebブラウザでWebページを開きたい場合は、このコードを使用してみてください。

/// 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
27
Ankur

これらの答えはすべて基本的に質問に答えていることを知っていますが、ここに、正常に失敗するメソッドのコードを示します。

文字列は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);
        }
}
2
Troyseph

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

JDK 1.4以降、私は信じています。

0
Brian Agnew