java process id,c# – 如何从Process.start()获取processID

我有以下代码

log.Info("Starting jar");

System.Diagnostics.ProcessStartInfo si = new ProcessStartInfo(procName);

si.RedirectStandardOutput = true;

si.RedirectStandardError = true;

si.UseShellExecute = false;

si.CreateNoWindow = false;

si.WorkingDirectory = System.IO.Directory.GetParent(Application.ExecutablePath) + "\\" + Properties.Settings.Default.rootDirectory;

//start a new process for Client

Process process = new Process();

process.StartInfo = si;

process.Start();

String name = process.ProcessName;

javaClientProcessId = process.Handle;

int javaProcessID = process.Id;

通过使用此代码我得到cmd作为进程名称在taskManager中显示为java.exe.从代码中它将5412作为process.id而1029作为process.Handle,其中6424是java.exe的进程ID是否有任何其他方法,我可以获得在TaskManager中的相同进程ID

注意

procName是运行jar文件的Bat文件的路径.

EDITED

当我执行以下代码时,它会从process.Kill()行给出错误.

if (process != null)

{

process.Kill();

process.Close();

process.Dispose();

}

由于进程(6504)已退出,因此无法处理请求

最佳答案 这是我的代码片段

try

{

Process[] javaProcList = Process.GetProcessesByName("java");

foreach (Process javaProc in javaProcList)

{

javaProc.Kill();

javaProc.Close();

javaProc.Dispose();

Console.WriteLine("StopJar -Java Process Stopped ");

log.Debug("StopJar -Java Process Stopped ");

}

}

catch (Exception exp)

{

log.Error("StopJar - Unable to kill Java Process", exp);

Console.WriteLine("Error while closing: " + exp.Message);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值