从Java在浏览器中打开html。浏览器未启动时出错?

时间:2010-02-24 21:32:50

标签: java firefox browser

我正在使用

java.awt.Desktop.getDesktop().browse(uri);

向我的用户显示生成的html文件。如果在我打电话之前启动浏览器(firefox 3.5.7; linux),一切都很好。但是如果浏览器启动是从getDesktop()。浏览调用触发的,那么java应用程序将不会退出,直到浏览器关闭。

我该如何避免这种行为?这在windows / macOsx下是否已知?

(如果我然后强制退出java应用程序,浏览器也将关闭,有时甚至崩溃!?)

2 个答案:

答案 0 :(得分:2)

浏览器存在的原因是因为浏览器是作为依赖进程启动的......所以当第一个进程关闭时,所有依赖进程都会被关闭。但是,在您首先启动浏览器的情况下,它已经拥有一个不受您的应用程序影响的不同进程ID。我认为避免这种行为的唯一方法是使用不同的技术(可能是Runtime.exec()?)以一种将其注册为非依赖进程的方式启动浏览器。

答案 1 :(得分:0)

项目浏览器启动器(http://browserlaunch2.sourceforge.net/)可以解决您的问题。您可以从代码中启动浏览器,如下所示:

String url = "http://....";
BrowserLauncher() launcher = new edu.stanford.ejalbert.BrowserLauncher();
launcher.openURLinBrowser(url);