【发布时间】:2011-09-26 03:27:58
【问题描述】:
我有一个 Java webstart 进程,它是 Windows 批处理脚本的一部分。在这种情况下,我在批处理脚本中使用 javaws 命令。 此匹配脚本 (start.bat) 使用“apache commons exec”以编程方式调用。在某些情况下,javaws 调用的 java 进程挂起,我必须从批处理脚本 start.bat 开始杀死整个进程线程。 是否有通过 apache commons exec 杀死整个进程树的编程方式?
我尝试过使用“execWatchdog.destroyProcess();”在“start.bat”脚本上。但是它只会杀死 start.bat 进程,而不是整个进程树。
有没有办法通过 apache-commons-exec 或者类似的代码杀死整个进程树?
我已经看到这个问题Performing equivalent of "Kill Process Tree" in c++ on windows 在 c++ 中执行等效任务。我想知道是否有人实现了通过 JNI 调用 Windows 本机系统调用。
【问题讨论】:
-
对这个问题做了一些背景调查。在 Process.destroy() 方法中无法杀死子进程。 Linkwindows上任何解决这个问题的方法都应该是调用原生库来实现的。