【问题标题】:Close browser window using java code使用java代码关闭浏览器窗口
【发布时间】:2015-07-02 18:55:51
【问题描述】:

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

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

【问题讨论】:

  • 浏览器窗口不等于进程。
  • @user207421 哪里说窗口是一个进程?只是提到你可以通过一个进程关闭一个窗口,而不是它们是一回事。

标签: java browser using


【解决方案1】:

使用下面的代码sn-p

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

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

【讨论】:

    【解决方案2】:

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

    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
    });
    

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

    或者使用ProcessBuilder:ProcessBuilder Documentation

    【讨论】:

    • 请注意,如果用户在该浏览器中打开了其他窗口,所有窗口最终都会被销毁,而不仅仅是一个。
    • @Jelle ..tx 为您解答,但使用运行时打开浏览器需要很长时间,所以现在我使用 belwo 代码打开浏览器。在这种情况下,除了找到进程然后关闭它之外,关闭打开的浏览器的合适方法是什么。有什么建议吗?桌面 dt = Desktop.getDesktop(); //dt.browse(新的 URI(url));
    • @PinkGiraffe 我不知道。也许您应该找出您的Runtime 运行缓慢的原因。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2017-01-16
      相关资源
      最近更新 更多