1

我需要调试一个从一开始就启动多个进程的项目,全部使用 Java。

我的问题是调试这样的代码非常烦人。因为每次我完成调试会话时,所有其他进程都卡在内存中并杀死所有进程非常烦人(因为它们没有进程名称并且它们都是“java”)。

是否有可能自动完成所有杀戮?或任何其他解决方案?

4

2 回答 2

0

您需要调用process.destroy才能杀死子进程。您可以为您的应用程序创建一个关闭挂钩并将此调用添加到它。

您将需要测试它是否在调试器中有效,但无论如何,它还是有好处的,因为它可以确保您的应用程序干净地关闭。

这是一个例子:

// start a sub process
final Process childProcess = new ProcessBuilder("some command").start();


// add a shutdown hook which will be invoked when the JVM is shutting down
Runtime.getRuntime().addShutdownHook(new Thread() {
    @Override
    public void run() {
        childProcess.destroy();
    }
});
于 2012-05-01T10:07:54.503 回答
0

好像没有办法!

于 2012-05-08T07:09:14.397 回答