我希望我的java程序檢查它的另一個實例是否已經在運行,如果是這種情況(在Windows平臺上),請殺死它。我這樣做的代碼Java kill程序如果已經運行
String CMD =
"wmic PROCESS where \"CommandLine like '%%MyProgram%%'\" Call Terminate";
Process process = Runtime.getRuntime().exec(CMD);
的代碼執行成功地,如果它被發現殺死正在運行的程序,但執行一次它也迫使調用程序退出(必須有系統的一些隱藏的電話。出口())。有沒有一種方法可以在不退出調用程序的情況下執行該命令?
我相信這個命令也會捕獲當前的實例,所以它終止所有其他實例,並且這個也是。 – parakmiakos 2014-11-21 13:52:43
這不是一種終止當前正在運行的進程而不是根本不啓動新進程的不好方法嗎?只是有點想... – bobbel 2014-11-21 13:54:12
是的,它必須趕上目前的情況,我不知道爲什麼我沒有想到它。但問題仍然存在:只有在沒有其他實例已經運行的情況下才能執行程序? – splinter123 2014-11-21 13:56:23