我需要从我的集成测试中杀死Windows上的外部进程(WindowsXP 32位)。我以为我只是使用'taskkill.exe',但我似乎无法让它工作。基本上,每次我从java启动'taskkill.exe'进程时它返回退出值-1073741515,没有任何内容打印到std错误/输出。
为了重现这个问题,我写了这个简单的应用程序:
public static void main(String[] args) throws Exception {
ProcessBuilder builder = new ProcessBuilder();
//In my real code, I kill process by its pid. However below also shows the problem:
builder.command("taskkill.exe", "/?");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = r.readLine();
System.out.println("out:");
while(line != null) {
System.out.println(line);
line = r.readLine();
}
System.out.println(p.waitFor());
}
更多数据点:
关于可能出现什么问题的任何提示?
答案 0 :(得分:0)
您是否尝试过以其他用户身份执行申请?如果您在Windows中使用普通批处理文件运行应用程序,请右键单击并选择Run as administrator
并查看结果。您运行的帐户可能没有足够的权限来执行本机应用程序。