我有一个进程的进程id。我可以得到其他信息的进程,如CPU%,内存,exe名称等?
我已经看到没有内置函数来获得所有这些。如何在Native中做到这一点?
请帮。
Java是一个平台独立的平台。它的规范没有定义任何关于pid的东西。因此,您无法找到一种通用/可移植的方法来操作pid。虽然这不是一个好的实践,但您可以针对特定的平台进行实现。
在windows上,您可以使用tasklist
来获得完整的pid列表和您想要的过滤器。
在Unix/Linux系统上,你可以使用ps ax | grep
来获取你的信息
所有这些信息都可以从操作系统中获得。例如Windows中的任务管理器。
Java可以提供的是,例如,线程转储:%JAVA_HOME%/bin/jstack.exe PID >stack.txt
或者堆转储:
%JAVA_HOME%/bin/jmap.exe -dump:format=b,file=heap.bin PID
内置到java中,据我所知,没有公开的API:
但是你可以结合java和OS本地命令来获取信息。
。
Windows explore (tasklist): http://msdn.microsoft.com/en-us/library/windows/hardware/ff545415(v=vs.85).aspx
Unix explore (ps):在Linux上获取进程ID的Shell脚本