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

强颜欢笑 提交于 2019-12-11 08:56:20

问题


I am running a exe through java runtime api

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

and retrieving the process id using jna like this -

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

but the process id return is not of abc.exe but of cmd.exe ..... i need the process id of abc.exe . Do not know how to get that can anyone help.


回答1:


The process is an object of type java.lang.Process. You can get the process id of abc.exe by using the Reflection API.

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



回答2:


i cant get the process id of the exe start through cmd.exe but my purpose was served by making the cmd.exe to wait till the child exe is running using following command

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

and i got the process id of the cmd.exe using jna-api



来源:https://stackoverflow.com/questions/23629361/how-to-get-a-process-id-of-exe-running-through-java-program

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!