【发布时间】:2014-07-18 10:15:01
【问题描述】:
有时我在默认浏览器中从 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调用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 调用代码)
【问题讨论】:
-
正常打开浏览器需要多长时间?
-
它会在 1-2 秒内打开