簡體   English   中英

java 如何獲取 jar 啟動的所有進程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM