2010-11-26 5 views
0

Java 1.4コードを使用して、CPU使用率とパーセンテージでのRAM使用率を表示することはできませんでした。私はGoogleで検索して、OperatingSystemMXBeanに関連するコードを提供しています。しかし、java 1.4ではサポートされていません。だから親切にjava 1.4を使ってこのコードを私に送ってください。システムのCPUと総使用量を表示するにはどうすればいいですか?

+2

具体的にはどのオペレーティングシステムですか? –

+0

Java 1.4から外部プログラムを呼び出さなければならない場合は、Java 1.4を使用する必要がありますが、これを行うJava 6プログラムを呼び出すことができます。 –

答えて

0

まず、Java 6に進むことをお勧めします。これはすべてをサポートしています。

しかし、もしあなたが純粋なJavaソリューションを持っていない場合。他に2つがあります。

  1. JNIを使​​用してください。この場合、サポートされているプラ​​ットフォームごとにコードを記述し、そのプラットフォームでコンパイルする必要があります。
  2. 実行する外部スクリプトを実行します。 UNIX用 利用PS: のPS -eoのPID、PPID、PCPU、VSIZE、fnameが、お好みで(JScriptのまたはVBScriptで)

書き込みWMIスクリプトをcmdを。

これは、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に、私はまた、実行するコマンドを決定するJavaラッパーを持って

cscript proclist.js 

として、それを実行し、コマンドの出力を読み取り、それを解析しますが、このサイトのフォーマットはありません大きな添付ファイルを置くことはできません。このコードはすぐに私の blog

を通してすぐに利用できるようになりますので、あなたはブログを購読するか、ブログから私を書くことができます。私はまもなくこのコードをお送りします。

関連する問題