因此,我使用 Runtime 类中的 exec 方法在 java 中启动了一个进程。现在,我如何调用它如下。
Runtime r=Runtime.getRuntime();
Process p=null;
String s="E:\\Softwares\\fiddler4setup.exe";
p=r.exec("cmd /c"+s);
现在,当我尝试使用 p.destroy() 方法销毁进程时。 Fiddler4setup.exe 仍在运行。我已经花了大约一周的时间寻找关闭此问题的方法。即使在这里,此类问题也没有特定的正确答案。请帮我解决这个问题。
此外,直接运行该文件不起作用,因为我猜它显示了一些 704 错误。然后,我看到了使用“cmd/c”的解决方案。
谢谢。
最佳答案
要终止您的进程,您必须使用:
Taskkill /IM YourProcess.exe /F
或者使用PID
Taskkill /PID 26356 /F
所以你的程序应该是这样的:
Runtime r = Runtime.getRuntime();
Process p = r.exec("Taskkill /IM fiddler4setup.exe /F");
请注意,您可以在 cmd 中使用此命令 tasklist
获取进程的 PID,如果您使用 PID 来避免所有路径问题,效果会更好。
编辑
没有明确的方法以管理员模式运行脚本,这里有一些问题希望能给您和想法:
Run command prompt as Administrator
Java: run as administrator
Run Java file as Administrator with full privileges
关于java - 如何杀死我们在java中使用exec启动的进程 {.exec ("cmd/c"+command)},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42725246/