我有一个进程的进程ID。我可以获得有关进程的其他信息,例如 CPU%、内存、exe 名称等吗?
我已经看到没有内置函数可以获取所有这些。如何用原生做到这一点?
请帮忙。
好吧,您可以从操作系统获得所有这些信息。例如,Windows 中的任务管理器。
例如,Java 可以为您提供线程转储:
%JAVA_HOME%/bin/jstack.exe PID >stack.txt
或者,堆转储:
%JAVA_HOME%/bin/jmap.exe -dump:format=b,file=heap.bin PID
Java是一个独立于平台的平台。它的规范没有定义任何关于 pid 的内容。所以你找不到一种通用/便携的方式来操作 pid。虽然这不是一个好的做法,但您可以针对特定平台进行实施。
在 Windows 上,您可以使用tasklist
获取 PID 的完整列表并过滤您想要的。
在 Unix/Linux 系统上,您可以使用它ps ax | grep
来获取您的信息。
据我所知,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 脚本