杀死java.lang.Process不会终止子进程()

杀死java.lang.Process不会终止子进程()

问题描述:

我有一个拥有许多按钮的GUI。每个按钮都会创建一个ProcessProcessBuilder.start()),它发送预定义参数的预定义ClearCase命令。杀死java.lang.Process不会终止子进程()

在致电ProcessBuilder.start()之后,我将该过程添加到列表中。当程序关闭时,我遍历这个列表,并在每个进程上调用destroy()。我正在使用Runtime.getRuntime().addShutdownHook()来尝试遍历我的列表。

但是,当我查看Windows任务管理器时,看到有些conhost.execleartool.exe进程仍处于活动状态。我怀疑Process.destroy()要么不工作,要么不传播。有没有办法彻底清理程序,并杀死所有的子进程,当用户点击X?

+0

'destroyForcibly()'? –

+0

你使用动态视图和cleartool setview吗? – VonC

+0

我最初尝试过'destroyForcibly()',但没有改变。我正在使用快照视图,只是在'view'目录中运行该进程。 – RockManX77777

看到: Killing a process using Java

但要注意,如果你调用过程中创造了新的子进程,这些可能不会被终止(见http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4770092)。