2010-11-26 126 views
0

我不想以百分比形式顯示CPU使用率和使用java 1.4代碼的百分比。我在谷歌搜索其提供了一些與OperatingSystemMXBean相關的代碼。但它在java 1.4版本中不受支持。所以請寄給我使用java 1.4的代碼。如何顯示系統的CPU和總內存使用率?

+2

具體哪個操作系統? – 2010-11-26 05:56:23

回答

0

首先,我建議你去向java 6發展。它支持一切。

但是,如果沒有,你沒有純粹的Java解決方案。還有2個:

  1. 使用JNI。在這種情況下,您必須爲每個支持的平臺編寫代碼並在該平臺上進行編譯。
  2. 運行執行它的外部腳本。 使用PS用於UNIX: PS -eo PID,PPID,PCPU的vsize,FNAME,您的選擇在cmd

寫的WMI腳本(在JScript或VBScript)。

這是windows的腳本。它使用與unix ps命令相同的格式打印數據。

var objWMIService = GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2"); 
// get CPU usage per process 
var pid2cpu = new Object(); 
var enumItems = new Enumerator(objWMIService.ExecQuery("SELECT IDProcess, PercentProcessorTime FROM Win32_PerfFormattedData_PerfProc_Process")); 
for (; !enumItems.atEnd(); enumItems.moveNext()) { 
    var p = enumItems.item(); 
    pid2cpu[p.IDProcess] = p.PercentProcessorTime; 
} 
//get process info 
enumItems = new Enumerator(objWMIService.ExecQuery("SELECT * FROM Win32_Process")); 
for (; !enumItems.atEnd(); enumItems.moveNext()) { 
    var p = enumItems.item(); 
    var cmd = p.CommandLine==null ? p.Name : p.CommandLine; 
    var cpu = pid2cpu[p.ProcessID]; 
    WScript.echo(p.ProcessID + " " + p.ParentProcessID + " " + cpu + " " + (p.VirtualSize/1024) + " " + p.Name + " " + cmd); 
} 

保存成文件proclist.js並運行它作爲

cscript proclist.js 

我也有Java包裝是決定要運行的命令,讀取命令輸出,並對其進行解析,但這個網站的格式不不允許放這麼大的附件。此代碼將通過我的blog,

即將發佈,因此您可以訂閱博客或從博客寫信給我,我將很快向您發送此代碼。

相關問題