我有一个有很多按钮的GUI。每个按钮都会创建一个Process
(ProcessBuilder.start()
),用于发送带有预设参数的预定ClearCase命令。
调用ProcessBuilder.start()
后,我将进程添加到列表中。当程序关闭时,我遍历此列表并在每个进程上调用destroy()
。我正在使用Runtime.getRuntime().addShutdownHook()
尝试遍历我的列表。
但是,当我查看Windows任务管理器时,我发现某些conhost.exe
和cleartool.exe
进程仍处于活动状态。我怀疑Process.destroy()
要么不工作要么不传播。有没有办法在用户单击X?
答案 0 :(得分:0)
请参阅: Killing a process using Java
但请注意,如果您调用的进程创建新的子进程,则可能不会终止这些进程(请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4770092)。