我需要调试一开始就启动多个进程的项目,全部使用Java。使用多个进程进行调试
我的问题是调试这样的代码是非常烦人的。因为每次我完成一个调试会话时,所有其他进程都卡在内存中并且杀死所有进程非常烦人(因为它们没有进程名称,它们都是“java”)。
是否有可能自动执行所有杀戮? 或任何其他解决方案?
我需要调试一开始就启动多个进程的项目,全部使用Java。使用多个进程进行调试
我的问题是调试这样的代码是非常烦人的。因为每次我完成一个调试会话时,所有其他进程都卡在内存中并且杀死所有进程非常烦人(因为它们没有进程名称,它们都是“java”)。
是否有可能自动执行所有杀戮? 或任何其他解决方案?
似乎也没有办法!
您需要致电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();
}
});
你在使用什么平台/ IDE? – Attila
我在Mac上使用Netbeans。 – MBZ
是否有可能在一个JVM中运行所有进程?例如一个main()将它们全部称为? –