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

时间:2014-07-18 10:15:01

标签: java windows process cmd

有时我在使用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秒,然后打开浏览器

我在this page

的底部找到了这种方法(通过cmd.exe调用)
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调用代码)

1 个答案:

答案 0 :(得分:0)

试试这个 - >

import java.awt.Desktop;
import java.net.URI;

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