Java打开浏览器进程导致30秒延迟



有时我在Java代码的默认浏览器中打开URL时遇到问题:

基本上Java执行新进程,但是浏览器正好在30秒后打开(似乎在浏览器打开过程中有一些超时)。

我都试过了

Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler http://google.com");

URI uri = new URI("http://google.com");
Desktop desktop = Desktop.getDesktop().browse(uri);

这两个调用都等待30秒,之后打开浏览器

我在本页底部找到了这种方法(通过cmd.exe调用start)

Runtime.getRuntime().exec("cmd");
PrintWriter stdin = new PrintWriter(p.getOutputStream());
stdin.println("start "" "http://google.com"");
stdin.close();
int returnCode = p.waitFor();

但是它在打开默认浏览器前等待同样的30秒。

如何让它随时打开?这次延误我错过了什么?

EDT:延迟只影响第一次从java应用程序调用浏览器。(在按下按钮时调用Swing ActionListener代码)

试试这个->

import java.awt.Desktop;
import java.net.URI;
if(Desktop.isDesktopSupported())
{
  Desktop.getDesktop().browse(new URI("http://www.google.com"));
}

最新更新