我正在尝试使用java gui来打开网页。因此,gui运行一些代码来执行操作,然后生成一个html文件。 然后我希望这个文件在创建后立即在Web浏览器(最好是Firefox)中打开。 我该怎么做呢?
答案 0 :(得分: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);
答案 1 :(得分:26)
Ya,但如果您想通过java程序在默认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
答案 2 :(得分: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);
}
}
答案 3 :(得分:0)
我已成功使用BrowserLauncher2。它将调用所有测试平台上的默认浏览器。我用它来通过JNLP演示软件。该软件下载,运行并驱动用户的浏览器到信息页面/反馈等。
JDK 1.4及以上,我相信。