美文网首页
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