我有一个进程的进程id。我能获取该进程的CPU%,内存,exe名称等其他信息吗?
我发现没有内置函数可以获取所有这些信息。如何使用Native实现这一功能?
请帮帮我。
Java是一个平台无关的平台。它的规范没有定义任何关于pid的内容。因此,您无法找到一种通用/便携式的方式来操作pid。虽然这不是一个好的实践,但您可以为特定平台制作一个实现。
在Windows上,您可以使用tasklist
获取完整的PID列表并过滤出您想要的PID。
在Unix / Linux系统上,您可以使用ps ax | grep
获取您的信息。
%JAVA_HOME%/bin/jstack.exe PID >stack.txt
%JAVA_HOME%/bin/jmap.exe -dump:format=b,file=heap.bin PID
据我所知,Java内置没有公开此API:
但是您可以将Java与操作系统本地命令配对以获取信息。
例如:
Windows资源管理器(tasklist):http://msdn.microsoft.com/en-us/library/windows/hardware/ff545415(v=vs.85).aspx
Unix资源管理器(ps):在Linux上获取进程ID的Shell脚本