我想從我的c#wpf應用程序啓動tomcat使用startup.bat和部署戰爭文件後,我想關閉它。這是我一直在做的事情,它似乎運作良好。C#System.Diagnostics.Process如何處理多個批處理文件
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = Tomcat_DIR_tbox.Text + @"\bin\startup.bat";
proc.StartInfo.WorkingDirectory = Tomcat_DIR_tbox.Text + @"\bin\";
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
// do some bla bla
//Close Tomcat
proc.StartInfo.Filename = Tomcat_DIR_tbox.Text + @"\bin\shutdown.bat";
proc.Start();
proc.WaitForExit();
現在我一直在想,雖然它的工作原理,它不是很正確嗎? Tomcat應用程序從未停止過,除非我告訴它,使用相同的進程關閉它也感覺不對?
我現在已經下來是這樣的:貯存過程中用於啓動Tomcat和創造了一個又一個要求必須關機:
//Close tomcat
System.Diagnostics.Process proc_shutdown = new System.Diagnostics.Process();
proc_shutdown.StartInfo.WorkingDirectory = Tomcat_DIR_tbox.Text + @"\bin\";
proc_shutdown.StartInfo.FileName = Tomcat_DIR_tbox.Text + @"\bin\shutdown.bat";
proc_shutdown.StartInfo.CreateNoWindow = true;
proc_shutdown.Start();
proc_shutdown.WaitForExit();
我不喜歡這個唯一方法是它帶來了一條消息,詢問我是否允許從我的應用程序調用shutdown.bat,我可以取消選中「不要再問我這個文件」,但我仍然不喜歡用戶體驗它提供。
我也嘗試直接調用proc.Close()而不是做proc.Filename = path_to_shutdown和proc.Start(),但它似乎掛斷了我的應用程序,並且從不關閉tomcat。
那麼啓動tomcat,做一些事情然後關閉它的最好方法是什麼?謝謝,Razvan。