Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java代码关闭浏览器窗口_Java_Browser_Using - Fatal编程技术网

使用java代码关闭浏览器窗口

使用java代码关闭浏览器窗口,java,browser,using,Java,Browser,Using,如何使用java代码关闭打开的浏览器窗口。我找到了一种方法,先找到流程,然后结束流程。还有更好的办法吗?我已经用下面的代码打开了浏览器。我在CentOS工作 String url = "http://192.168.40.174/test15.html"; Runtime runtime = Runtime.getRuntime(); runtime.exec("/usr/bin/firefox -new-window " + url); 你可以把它放在进程中并杀死它 Runtime runt

如何使用java代码关闭打开的浏览器窗口。我找到了一种方法,先找到流程,然后结束流程。还有更好的办法吗?我已经用下面的代码打开了浏览器。我在CentOS工作

String url = "http://192.168.40.174/test15.html";
Runtime runtime = Runtime.getRuntime();
runtime.exec("/usr/bin/firefox -new-window " + url);

你可以把它放在
进程中
并杀死它

Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("/usr/bin/firefox -new-window " + url);
p.destroy();
--更新--

您应该使用字符串数组执行命令

Process p = Runtime.getRuntime().exec(new String[]{
    "/usr/bin/firefox",
    "-new-window", url
});
这不太容易出错:


或者使用
ProcessBuilder

我试图实现一个类似的目标,而不太在意哪个浏览器会打开。我遇到了一个基于Java FX的解决方案:

public class MyBrowser extends Application {

private String url = "http://stackoverflow.com/questions/29842930/close-browser-window-using-java-code";

public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage stage) throws Exception {

    WebView webview = new WebView();
    webview.getEngine().load(url);
    webview.setPrefSize(1800, 1000);

    stage.setScene(new Scene(webview));
    stage.show();

    //stage.close();

}
}


当然,如果以这种方式调用
close()
,则不会真正看到嵌入式浏览器窗口。应在代码的另一部分调用它,例如,响应按钮按下

使用下面的代码片段

Runtime runtime = Runtime.getRuntime();
runtime.exec("killall -9  firefox");

根据您的需要更改浏览器的名称。

请注意,如果用户在该浏览器中打开其他窗口,则所有窗口都将被销毁,而不仅仅是一个。@Jelle..tx获取您的答案,但使用运行时打开浏览器需要很长时间,因此现在我使用belwo代码打开浏览器。在这种情况下,除了查找流程然后关闭它之外,关闭打开的浏览器的合适方法是什么?有什么建议吗?Desktop dt=Desktop.getDesktop()//dt.browse(新URI(url))@据我所知,不是粉红色的。也许您应该找出
运行时
运行速度慢的原因。浏览器窗口不等于进程。@user207421其中说明了窗口是进程?这里只提到您可以通过一个进程关闭一个窗口,而不是说它们是同一件事。