java - 如何杀死我们在java中使用exec启动的进程 {.exec ("cmd/c"+command)}

标签 java process runtime.exec destroy

因此,我使用 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/

相关文章:

java - 如何从Activator中获取 View ?

ruby-on-rails - 计算机科学家的 Web 开发

java - 在 GAE + GWT 中实现 ACL

java - Apache NiFi - OutOfMemory 错误 : GC overhead limit exceeded on SplitText processor

linux - tcp 连接在 close_wait 中挂起并且属于 pid 1

xml - 在 Linux 上运行进程的 shell 脚本

java - swing GUI 中被阻止的外部进程

Java getRuntime 执行

java - 在java中使用args执行批处理文件

java - 在android中使用Picasso填充gridview