簡體   English   中英

如何關閉java swing應用程序創建的所有進程?

[英]How to close all processes created by java swing application?

我正在創建一個java swing應用程序,允許用戶為命令行執行多個命令。 我已經添加了這行代碼以確保我的swing應用程序在關閉時退出:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

但是,如果關閉gui,如何確保swing應用程序調用的所有進程都被銷毀。 這是我通過gui執行命令的代碼:

    Process p;
    String command = "java -jar blah blah blah";
    try {
        System.out.println("Export Command To Execute: " + command);
        p = Runtime.getRuntime().exec(command);
        p.waitFor();
        //BufferedReader inputStream = new BufferedReader(new InputStreamReader(p.getInputStream()));
        BufferedReader errorStream = new BufferedReader(new InputStreamReader(p.getErrorStream()));
        String line = "";
        String output ="";
        while((line = errorStream.readLine()) != null) {
            output+=line;
        }

        //inputStream.close();
        errorStream.close();
        System.out.println(output);
        System.out.println("Export complete!...");

    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

應用程序的用戶可以在應用程序中執行多個命令,並且每個命令可能需要一段時間才能運行,所以我想確保應用程序創建的所有進程都被殺死,而不是讓用戶選擇關閉時連續運行應用程序。

請參閱: 如何從代碼中關閉Java Swing應用程序,如果已經啟動了Java進程,則可以在關閉swing應用程序后使用命令:“taskkill / pid xxx”(假設為windows)將其終止。 我假設您可以獲得在swign應用程序命令中啟動的進程的pids。 如何在java中找到進程的進程ID(pid)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM