C# - 在java进程停止后停止ServiceProcess包装

时间:2015-06-23 09:14:30

标签: java c# batch-file service

我正在建立一个启动批处理文件的c sharp serviceProcess(批处理文件将启动一个java应用程序)。 如果我停止服务它会杀死java进程。停止java进程最多可能需要2分钟。该服务必须等待java应用程序停止,所以我睡了一觉。

System.Threading.Thread.Sleep( );

是否可以检查" java"进程关闭,然后停止ServiceProcess。

2 个答案:

答案 0 :(得分:0)

您可以使用Process-class访问该流程。它允许您获取有关特定过程的多个信息。当您直接启动java.exe(使用Process.Start)时,您已经拥有Process - 实例。

使用批处理文件时,您需要找到该过程,这根本不是问题。您可以使用Process.GetProcessesByName找到进程,但是您可以找到计算机上运行的所有Java进程。

答案 1 :(得分:0)

您可以尝试以下内容:

        Process[] proc = Process.GetProcessesByName("Java");
        if (proc.Count() != 0)
        {
            //Process Alive
            Process prod = proc[0];
            prod.Kill();
            prod.WaitForExit();
        }
        else
        {
            //Process Dead
        }

更好的选择是使用进程ID(如果您知道的话)

警告:这会终止它找到的第一个java进程,你需要检查你需要杀死哪一个...