3

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

我已经看到没有内置函数可以获取所有这些。如何用原生做到这一点?

请帮忙。

4

3 回答 3

1

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

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

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

或者,堆转储

%JAVA_HOME%/bin/jmap.exe -dump:format=b,file=heap.bin PID
于 2013-06-12T07:22:54.133 回答
1

Java是一个独立于平台的平台。它的规范没有定义任何关于 pid 的内容。所以你找不到一种通用/便携的方式来操作 pid。虽然这不是一个好的做法,但您可以针对特定平台进行实施。

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

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

于 2013-06-12T07:25:38.973 回答
0

据我所知,Java 内置没有为此公开的 API:

但是您可以将 java 与 OS 本机命令结合使用来获取信息。

例如

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

Unix explore (ps):在 Linux 上获取进程 ID 的 Shell 脚本

于 2013-06-12T07:23:59.990 回答