2012-07-11 64 views
1

我的情况杀死在Windows进程树:是否有安全和正确使用Java语言

有一个在我们的Java EE应用程序中的分析操作,此功能是通过执行使用Java批处理命令来实现。 lang.Runtime。最严重的问题是这个操作需要很长时间,在执行过程中会遇到一些错误,然后整个进程树仍然存在,这无疑降低了应用程序和服务器的性能。所以我想知道任何人都可以提供一个想法来安全正确地解决这个问题。

而且我知道这是我们开发中的一个非常常见的问题,如果在此提供示例,我将不胜感激。

回答

1

如果你开始

Process p = Runtime.exec(""); 

的应用程序,那么你可以调用

p.destroy(); 

除此之外,我认为这将是巨大的,如果你可以,如果任何错误批量处理自我毁灭发生在执行中。有关更多详细信息,请参阅this question

+0

非常感谢您宝贵的建议。 – 2012-07-11 03:12:11

0

http://commons.apache.org/exec/apidocs/index.html

接口CommandLauncher包含了返回过程中的几个高管的方法。

但无论如何你没有办法控制进程ID:这是操作系统的责任。而且,标准的Java API甚至不允许你检索进程ID。在较老的java版本中有一个技巧:Process包含的int字段pid的实现可以使用反射来检索。但是这在1.6版本中有所改变。

+0

非常感谢您的帮助。中国人。 – 2012-07-11 11:45:28

相关问题