第一步:导入一个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();
}
}
}
网友评论