2015-06-23 16 views
0

我想從我的C#代碼執行Java應用程序。我使用System.Diagnostics中的Process類。正確運行來自C#的Java應用程序

我能夠運行它並殺死,但似乎Java啓動子進程,當我執行應用程序。當我試圖殺死進程時,我終止了父進程,第二個進程在後臺啓動,但仍在運行。

該邏輯的多次執行會導致數十個java.exe進程和內存溢出。

有沒有辦法做這樣的事情,如從C#代碼正確運行Java應用程序,並能夠殺死啓動的進程?

我不知道是否有可能在所有解決這個問題,如果我沒有管理權限

回答

1

我會忍不住用taskkill。從這個cmd命令運行:

string.Format("cmd /c \"taskkill /f /pid {0}\" /t", this.processId); 

/t做了樹殺,表示結束的子進程。

+0

必須運行我的應用程序的用戶沒有管理權限。不知道我是否能夠以編程方式執行此命令 – xwrs

+0

「Process.Close」和「Process.Kill」是否適合您? –

+0

Process.Close或Process.Kill停止主要java進程,而不是子進程。子進程繼續工作。 – xwrs

相關問題