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

时间:2015-04-24 08:55:27

标签: 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);

4 个答案:

答案 0 :(得分:0)

使用下面的代码片段

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

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

答案 1 :(得分:-1)

你可以将它放在Process中并杀死它。

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

- 更新 -

您应该使用String数组

执行命令
Process p = Runtime.getRuntime().exec(new String[]{
    "/usr/bin/firefox",
    "-new-window", url
});

这不容易出错: Java execute a command with a space in the pathname

或使用ProcessBuilderProcessBuilder Documentation

答案 2 :(得分:-1)

我试图实现类似的事情,而不关心哪个浏览器会打开。我来自基于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(),您将无法真正看到嵌入式浏览器窗口。它应该在代码的另一部分中调用,例如响应按钮按下。

答案 3 :(得分:-1)

运行Firefox

我使用 Runtime.getRuntime()运行Firefox。我虽然使用私有窗口,所以命令如下:

Process p = Runtime.getRuntime().exec("firefox --private-window");

杀死Firefox -您当然可以通过以下方式杀死进程:

p.destroy();

Runtime.getRuntime().exec("killall firefox");

我不喜欢这些解决方案,因为它有时会在我的PC上引起FF问题。因此,为了正常关闭FF,我决定发送 CTRL + Q 键盘组合。

注意,如果您的FF窗口是活动窗口,这将起作用!

public static void ctrlAndQ()
{
    try
    {
        robot = new Robot();
    }
    catch (AWTException e)
    {
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_Q);
    robot.keyRelease(KeyEvent.VK_Q);
    robot.keyRelease(KeyEvent.VK_CONTROL);
}

编辑:在Ubuntu上,我还发现了以下命令行工具,这些工具可能非常有用,但我没有对其进行测试:xdotoolwmctrl