大家好我在我的java应用程序中有两个进程,如下所示。
Process p1=some process;
Process p2=some process;
第一次它完全开始工作。但是当我重新加载应用程序时,旧进程也在运行,所以我只想在执行时杀死旧进程。我知道我们可以通过使用它的进程来终止进程id.But我怎样才能获得这个p1和p2.nny想法的进程ID?。
答案 0 :(得分:0)
在您的应用程序中捕获重新加载事件,并在退出之前终止子进程。
如果这不起作用,您的设计可能存在错误。尝试修复该错误。真。我的意思是。
解决方法是将PID写入文本文件。当你开始时,阅读文本文件,检查这是否是正确的过程,然后将其删除。
如果没有检查,您可能会杀死由其他人创建的完全有效的进程。我的推理是这样的:你重新加载时不能杀死进程。这意味着您也无法删除文本文件。因此PID文件将始终存在。最终,你将杀死错误的进程。这将每年发生一次。这将在你离开/改变工作/等等六个月后第一次发生。没有人会理解发生了什么,因为它几乎不可能重现。
答案 1 :(得分:0)
正如其他人所说,最好以更自然的方式终止这个过程。
但是,如果你确实需要实际强制终止它,那么你可以在Process对象上调用destroy()方法,只要你不关心它运行了。
另外,您真的需要将代码作为进程运行吗?通常有更好的方法。