如何使用pid使用Java获取进程信息?

时间:2013-06-12 07:17:29

标签: java process native jna

我有进程的进程ID。我可以获得有关CPU%,内存,exe名称等进程的其他信息吗?

我已经看到没有内置函数来获取所有这些。如何使用Native?

请帮忙。

3 个答案:

答案 0 :(得分:2)

那么,您可以从操作系统获得所有这些信息。例如,Windows中的任务管理器

Java可以为您提供的功能,例如线程转储

%JAVA_HOME%/bin/jstack.exe PID >stack.txt

或者,堆转储

%JAVA_HOME%/bin/jmap.exe -dump:format=b,file=heap.bin PID

答案 1 :(得分:0)

根据我的知识,内置于java中没有公开API:

但是你可以将java与OS native命令结合起来获取信息。

e.g。

Windows浏览器(任务列表):http://msdn.microsoft.com/en-us/library/windows/hardware/ff545415(v=vs.85).aspx

Unix探索(ps):Shell script to get the process ID on Linux

答案 2 :(得分:0)

Java是一个独立于平台的平台。它的规范没有定义任何关于pid的内容。因此,您无法找到操作pid的通用/可移植方式。虽然这不是一个好习惯,但您可以针对特定平台进行实施。

在Windows上,您可以使用tasklist获取PID的完整列表并过滤所需的PID。

在Unix / Linux系统上,您可以使用ps ax | grep来获取您的信息。