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

从Java在浏览器中打开html。浏览器未启动时出现错误?,java,firefox,browser,Java,Firefox,Browser,我正在使用 java.awt.Desktop.getDesktop().browse(uri); 向我的用户显示生成的html文件。如果在我打电话之前启动浏览器(firefox 3.5.7;linux),一切都很好。但是,如果浏览器启动是从getDesktop().browse调用触发的,那么java应用程序在浏览器关闭之前不会退出 我怎样才能避免这种行为?这在windows/macOsx下也是已知的吗 (如果我随后强制退出java应用程序,浏览器也将关闭,有时甚至崩溃!?)浏览器存在的原因是

我正在使用

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

我怎样才能避免这种行为?这在windows/macOsx下也是已知的吗


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

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

项目浏览器启动器()可以解决您的问题。您可以从代码启动浏览器,如下所示:

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

是的,谢谢!这就成功了。我现在使用这里的代码:(当然没有jse6的回退版本,或者如果其他调用不起作用,我将回退到jse6:-)