【发布时间】:2011-01-12 14:56:40
【问题描述】:
我有这个特定的要求。 如果用户单击 GUI 中的按钮,我需要启动浏览器。 我需要等两分钟。如果用户在两分钟前关闭浏览器,我需要启动窗口“A”。如果浏览器保持打开超过两分钟,我需要启动窗口“B”。
目前我可以启动浏览器窗口。但是当用户关闭它时无法收听。下面是我写的代码的快照。
String url = "www.google.com";
Process browserProcess;
String commandLine = "rundll32 url.dll,FileProtocolHandler " + url;
String[] args = commandLine.split(" ");
ProcessBuilder pb = new ProcessBuilder(args);
pb.redirectErrorStream(true);
browserProcess = pb.start();
in = new BufferedReader(new InputStreamReader(browserProcess.getErrorStream()));
String lineRead;
while ((lineRead = in.readLine()) != null) {
//do nothing
}
int exitVal;
System.out.println("Waiting...");
exitVal = browserProcess.waitFor();
System.out.println("Done");
目前,只要浏览器启动,waitFor() 就会返回。我需要等到用户关闭浏览器窗口。知道怎么做吗?
【问题讨论】:
-
您忘记了标签式浏览。
-
必须更易于使用 Java Desktop API 来启动浏览器:
Desktop.getDesktop().browse(new URI("http://www.google.com"); -
对不起,我忘了说,我只为 java 1.5 编写代码。所以不能使用桌面 API :(
-
当然可以,Java Desktop API 可以单独下载。
标签: java swing browser wait processbuilder