如何杀死java中的特定进程

时间:2012-05-21 07:09:52

标签: java process

大家好我在我的java应用程序中有两个进程,如下所示。

Process p1=some process;
Process p2=some process;

第一次它完全开始工作。但是当我重新加载应用程序时,旧进程也在运行,所以我只想在执行时杀死旧进程。我知道我们可以通过使用它的进程来终止进程id.But我怎样才能获得这个p1和p2.nny想法的进程ID?。

2 个答案:

答案 0 :(得分:0)

在您的应用程序中捕获重新加载事件,并在退出之前终止子进程。

如果这不起作用,您的设计可能存在错误。尝试修复该错误。真。我的意思是。

解决方法是将PID写入文本文件。当你开始时,阅读文本文件,检查这是否是正确的过程,然后将其删除。

如果没有检查,您可能会杀死由其他人创建的完全有效的进程。我的推理是这样的:你重新加载时不能杀死进程。这意味着您也无法删除文本文件。因此PID文件将始终存在。最终,你将杀死错误的进程。这将每年发生一次。这将在你离开/改变工作/等等六个月后第一次发生。没有人会理解发生了什么,因为它几乎不可能重现。

答案 1 :(得分:0)

正如其他人所说,最好以更自然的方式终止这个过程。

但是,如果你确实需要实际强制终止它,那么你可以在Process对象上调用destroy()方法,只要你不关心它运行了。

另外,您真的需要将代码作为进程运行吗?通常有更好的方法。