gpt4 book ai didi

java - 如何关闭由 java swing 应用程序创建的所有进程?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:30 26 4
gpt4 key购买 nike

当允许使用命令行执行多个命令时,我正在创建一个 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();
}

应用程序的用户可以在应用程序中执行多个命令,每个命令可能需要一段时间才能运行,所以我想确保应用程序创建的所有进程都被杀死,而不是让它们在用户持续运行时继续运行选择关闭应用程序。

最佳答案

看这个:How to close a Java Swing application from the code而且,如果您已经启动了 java 进程,则可以在关闭 swing 应用程序后使用命令“taskkill/pid xxx”(假设是 windows)终止它们。我假设您可以获得在 swign 应用程序命令中启动的进程的 pids。 How do I find the process ID (pid) of a process started in java?

关于java - 如何关闭由 java swing 应用程序创建的所有进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com