我想从我的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。