美文网首页
Runtime.exec方法之获取process id

Runtime.exec方法之获取process id

作者: xintop | 来源:发表于2020-10-19 13:12 被阅读0次

第一步:导入一个jna-4.1.0.jar,对应的maven如下:

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>4.1.0</version>
</dependency>

第二步:然后新建一个接口Kernel32,代码如下:

public interface Kernel32 extends Library {  
    public static Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);  
    public long GetProcessId(Long hProcess);  
} 

第三步:编写测试类


public class Test1 {  
    public static void main(String[] args) throws Exception {  
        Runtime r = Runtime.getRuntime();  
        long pid = -1;  
        try {  
            Process process = r.exec("D:\\Program Files\\DBeaver\\dbeaver.exe");  
            Field field = process.getClass().getDeclaredField("handle");  
            field.setAccessible(true);  
            pid = Kernel32.INSTANCE.GetProcessId((Long) field.get(process));  
            System.out.println(pid);  
        } catch (Exception ex) {  
            ex.printStackTrace();  
        }         
    }  
}

相关文章

网友评论

      本文标题:Runtime.exec方法之获取process id

      本文链接:https://www.haomeiwen.com/subject/rxhdmktx.html