如何使用java代码关闭打开的浏览器窗口。我找到了一种方法来首先找到该过程,然后结束该过程。有没有更好的方法?我最初使用以下代码打开了浏览器。我在CentOS工作。
String url = "http://192.168.40.174/test15.html";
Runtime runtime = Runtime.getRuntime();
runtime.exec("/usr/bin/firefox -new-window " + url);
答案 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
或使用ProcessBuilder
:ProcessBuilder 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上,我还发现了以下命令行工具,这些工具可能非常有用,但我没有对其进行测试:xdotool和wmctrl