我希望我的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