2010-11-26 120 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,

即将发布,因此您可以订阅博客或从博客写信给我,我将很快向您发送此代码。

相关问题