我正在建立一个启动批处理文件的c sharp serviceProcess(批处理文件将启动一个java应用程序)。 如果我停止服务它会杀死java进程。停止java进程最多可能需要2分钟。该服务必须等待java应用程序停止,所以我睡了一觉。
System.Threading.Thread.Sleep( );
是否可以检查" java"进程关闭,然后停止ServiceProcess。
答案 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进程,你需要检查你需要杀死哪一个...