有时我在使用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调用)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调用代码)
答案 0 :(得分:0)
试试这个 - >
import java.awt.Desktop;
import java.net.URI;
if(Desktop.isDesktopSupported())
{
Desktop.getDesktop().browse(new URI("http://www.google.com"));
}