是否有一种安全正确的方法可以使用Java语言在Windows中杀死进程树
我的情况: 在我们的Java EE应用程序中有一个分析操作,该函数是通过使用Java.lang.Runtime执行批处理命令来实现的。最严重的问题是,此操作将花费很长时间,并且在执行过程中会遇到一些错误,然后整个进程树仍处于活动状态,这无疑会降低应用程序和服务器的性能。所以我想知道,任何人都可以提供一个安全和正确地解决这个问题的想法是否有一种安全正确的方法可以使用Java语言在Windows中杀死进程树,java,multithreading,process,Java,Multithreading,Process,我的情况: 在我们的Java EE应用程序中有一个分析操作,该函数是通过使用Java.lang.Runtime执行批处理命令来实现的。最严重的问题是,此操作将花费很长时间,并且在执行过程中会遇到一些错误,然后整个进程树仍处于活动状态,这无疑会降低应用程序和服务器的性能。所以我想知道,任何人都可以提供一个安全和正确地解决这个问题的想法 我知道这是我们开发过程中的一个非常常见的问题,如果这里提供一个示例,我将不胜感激。如果您使用 Process p = Runtime.exec(""); 然后你可
我知道这是我们开发过程中的一个非常常见的问题,如果这里提供一个示例,我将不胜感激。如果您使用
Process p = Runtime.exec("");
然后你可以打电话给
p.destroy();
除此之外,我认为如果在执行过程中出现任何错误,您可以使批处理过程自行销毁,这将是非常棒的。有关更多详细信息,请参阅。如果您使用
Process p = Runtime.exec("");
然后你可以打电话给
p.destroy();
除此之外,我认为如果在执行过程中出现任何错误,您可以使批处理过程自行销毁,这将是非常棒的。有关更多详细信息,请参阅
接口CommandLauncher包含几个返回进程的exec方法
但无论如何,您无法控制进程ID:这是操作系统的责任。此外,标准JavaAPI甚至不允许检索进程ID。在旧的java版本中有一个技巧:实现包含int字段pid的进程,可以使用反射检索该进程。但这在1.6版中有所更改。请参见
接口CommandLauncher包含几个返回进程的exec方法
但无论如何,您无法控制进程ID:这是操作系统的责任。此外,标准JavaAPI甚至不允许检索进程ID。在旧的java版本中有一个技巧:实现包含int字段pid的进程,可以使用反射检索该进程。但这在1.6版中已更改。非常感谢您的宝贵建议。非常感谢您的宝贵建议。非常感谢您的帮助。中国佬。非常感谢你的帮助。中国佬。