[英]java how get all processes launched by jar
在 java 中,我需要让另一个 jar 启动进程。
A.jar -> B.jar -> 一些应用程序(获取 ID)
I have A.jar which launching B.jar, then B.jar launching some app (for example browser) I need get process id (PID) of this browser in A.jar and destroy this PID.
A.jar
public class A {
public static void main(String[] args) {
ProcessBuilder builder;
Process process = null;
try{
List<String> command = new ArrayList<String>();
command.add("java");
command.add("-jar");
command.add("B.jar");
builder = new ProcessBuilder(command);
process = builder.start();
ProcessHandle processHandle = process.toHandle();
destroyProcess(processHandle);
//System.exit(0);
}catch(Exception e){
e.printStackTrace();
}
..
..
private static void destroyProcess(ProcessHandle processHandle){
// destroy app of B.jar
}
B.jar
public class B{
public static void main(String[] args){
// launch browser
ChromeDriver driver = new ChromeDriver(options);
}
}
谢谢Slaw找到解决方案
processHandle.children().forEach(proc -> proc.children().forEach(child -> System.out.println("PID: [ " + child.pid() + " ], Cmd: [ " + child.info().command() + " ]")));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.