我需要調試一開始就啓動多個進程的項目,全部使用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()將它們全部稱爲? –