繁体   English   中英

如何通过java程序获取exe的进程id

[英]How to get a process id of exe running through java program

我正在通过java运行时api运行一个exe

     Process process = runTime.exec("cmd.exe /c start abc.exe "+Id, null, new       File("D:/My"));

并使用像这样的jna检索进程ID -

    Kernel32.INSTANCE.GetProcessId((Long) f.get(process));

但进程id返回不是abc.exe而是cmd.exe .....我需要abc.exe的进程ID。 不知道如何得到任何人可以帮助。

processjava.lang.Process类型的对象。 您可以使用Reflection API获取abc.exe的进程ID。

Field field = process.getClass().getDeclaredField("pid");
field.setAccessible(true);
System.out.println( field.get( process ) );

我无法通过cmd.exe获取exe启动的进程ID但我的目的是通过使cmd.exe等待子exe运行使用以下命令来实现的

Process process = runTime.exec("cmd.exe /c start /wait abc.exe "+Id, null, new       File("D:/My"));

我使用jna-api获得了cmd.exe的进程ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM