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

问题描述 投票:1回答:3

我应该如何关闭使用Java代码打开浏览器窗口。我已经找到一种方法先找到过程然后结束该进程。有没有更好的办法?我已经打开最初使用下面的代码浏览器。我在CentOS的工作。

String url = "http://192.168.40.174/test15.html";
Runtime runtime = Runtime.getRuntime();
runtime.exec("/usr/bin/firefox -new-window " + url);
java browser using
3个回答
-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


-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()这样一来,你就不会真正看到了嵌入式浏览器窗口。它应在的代码的另一部分被调用,例如响应于按钮按压。


-1
投票

运行Firefox

我通过调用Runtime.getRuntime使用Firefox()。我使用专用窗口,虽然,所以我的命令如下:

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

杀火狐 - 当然你也可以杀的过程中,通过例如:

p.destroy();

要么

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

我不喜欢,虽然这些解决方案,因为不时它会导致我的电脑上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

© www.soinside.com 2019 - 2024. All rights reserved.