我的情況殺死在Windows進程樹:是否有安全和正確使用Java語言
有一個在我們的Java EE應用程序中的分析操作,此功能是通過執行使用Java批處理命令來實現。 lang.Runtime。最嚴重的問題是這個操作需要很長時間,在執行過程中會遇到一些錯誤,然後整個進程樹仍然存在,這無疑降低了應用程序和服務器的性能。所以我想知道任何人都可以提供一個想法來安全正確地解決這個問題。
而且我知道這是我們開發中的一個非常常見的問題,如果在此提供示例,我將不勝感激。
我的情況殺死在Windows進程樹:是否有安全和正確使用Java語言
有一個在我們的Java EE應用程序中的分析操作,此功能是通過執行使用Java批處理命令來實現。 lang.Runtime。最嚴重的問題是這個操作需要很長時間,在執行過程中會遇到一些錯誤,然後整個進程樹仍然存在,這無疑降低了應用程序和服務器的性能。所以我想知道任何人都可以提供一個想法來安全正確地解決這個問題。
而且我知道這是我們開發中的一個非常常見的問題,如果在此提供示例,我將不勝感激。
如果你開始
Process p = Runtime.exec("");
的應用程序,那麼你可以調用
p.destroy();
除此之外,我認爲這將是巨大的,如果你可以,如果任何錯誤批量處理自我毀滅發生在執行中。有關更多詳細信息,請參閱this question。
見http://commons.apache.org/exec/apidocs/index.html
接口CommandLauncher包含了返回過程中的幾個高管的方法。
但無論如何你沒有辦法控制進程ID:這是操作系統的責任。而且,標準的Java API甚至不允許你檢索進程ID。在較老的java版本中有一個技巧:Process包含的int字段pid的實現可以使用反射來檢索。但是這在1.6版本中有所改變。
非常感謝您的幫助。中國人。 – 2012-07-11 11:45:28
非常感謝您寶貴的建議。 – 2012-07-11 03:12:11