我有进程的进程ID。我可以获得有关CPU%,内存,exe名称等进程的其他信息吗?
我已经看到没有内置函数来获取所有这些。如何使用Native?
请帮忙。
答案 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
来获取您的信息。