2009-03-02 2 views

Antwort

39

Wenn Sie Java 6 oder höher verwenden, finden Sie in der Desktop API, insbesondere browse. Verwenden Sie es wie folgt (nicht getestet):

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

Hey. Kann es immer noch nicht zur Arbeit bringen. Ich erhalte den folgenden Fehler: "Fehlermeldung: Das System kann den angegebenen Pfad nicht finden." Das ist, obwohl ich ihm den genauen Weg gegeben habe. –

+0

@TheSpecialOne - liefern Sie einen _local_ Pfad zur Datei? zB: In einer Windows Box würde htmlFilePath wie "c: \ Pfad \ zu \ Datei.html" aussehen. Verwenden Sie nicht die URL-Syntax ... –

0

Ich habe BrowserLauncher2 mit Erfolg eingesetzt. Es ruft den Standardbrowser auf allen getesteten Plattformen auf. Ich benutze dies für Demo-Software über JNLP. Die Software lädt, lädt und betreibt den Browser des Benutzers zu Informationsseiten/Feedback etc.

JDK 1.4 und höher, glaube ich.

+0

Wenn die URL der Seite wegen Benutzeraktivität geändert wird, kann diese neue URL mit BrowserLauncher2 abgerufen werden? –

26

Ja, aber wenn Sie die Webseite in Ihrem Standard-Webbrowser mit einem Java-Programm öffnen möchten, können Sie versuchen, diesen Code zu verwenden.

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

Ich weiß, dass alle diese Antworten im Grunde die Frage beantwortet haben, aber hier ist der Code für eine Methode, die elegant fehlschlägt.

Beachten Sie, dass die Zeichenfolge die Position einer HTML-Datei sein kann

/** 
* 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); 
     } 
} 
Verwandte Themen