2013-06-12 35 views
3

我有一個進程的進程ID。我可以獲得有關CPU%,內存,exe名稱等進程的其他信息嗎?如何使用pid與Java獲取進程信息?

我已經看到沒有內置函數來獲取所有這些。如何使用Native執行此操作?

請幫忙。

-Ravi

+1

不通過Java API。您將需要一個JNI/JNA(本機)解決方案 – MadProgrammer

回答

2

好吧,您可以從操作系統獲得所有這些信息。例如,Windows中的任務管理器

什麼Java可以爲您提供的,例如線程轉儲

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

或者,堆轉儲

%JAVA_HOME%/bin/jmap.exe -dump:format=b,file=heap.bin PID 
0

Java是一種獨立於平臺的平臺。其規範沒有定義任何關於pid的內容。所以你不能找到一個通用/便攜的方式來操縱PID。雖然這不是一個好的做法,但您可以爲特定的平臺進行實施。

在windows上,您可以使用tasklist來獲取所需PID的完整列表和過濾器。

在Unix/Linux系統上,您可以使用ps ax | grep來獲取您的信息。