【发布时间】:2019-02-23 14:06:15
【问题描述】:
在我的程序中,如果任务管理器正在运行,我想杀死它。我试过这个:
private static final String TASKLIST = "tasklist";
private static final String KILL = "taskkill /F /IM ";
if(isProcessRunning("Taskmgr.exe")){
// TODO code application logic here
killProcess("Taskmgr.exe");
}
这是我的isProcessRunning() 方法:
public static boolean isProcessRunning(String servicename) throws Exception {
Process p = Runtime.getRuntime().exec(TASKLIST);
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
if (line.contains(servicename)) {
System.err.println(line);
return true;
}
}
return false;
}
还有killprocess() 方法:
public static void killProcess(String serviceName) throws Exception {
Runtime.getRuntime().exec(KILL + serviceName);
}
但任务管理器仍在运行。我能做什么?
【问题讨论】:
-
KILL是什么? -
您是否检查过您的程序是否有权关闭Taskmgr? taskmgr 也没有大写“T”
-
除此之外:您为什么要这样做?这就像在 Windows 机器上运行 Java 程序时我最不想做的事情。
-
私有静态最终字符串 TASKLIST = "tasklist"; private static final String KILL = "taskkill /F /IM";
-
@alpha_boy 请记住,此代码依赖于平台,如果您碰巧尝试在另一个系统上运行它,它将无法在另一个系统上运行。
标签: java kill-process