0

Unixシステムで、合計メモリ、空きメモリ、CPU使用率などの単純な結果が必要です。現在、シェルコマンドを使用していますtop

同じことをするためのJavaの機能はありますか?

私の目標は、Googleゲージチャートを介してWebアプリに結果を表示することです。したがって、明らかに、Java内からUnixコマンドを実行するよりも、Javaを使用する方がはるかに簡単です。

前もって感謝します

4

1 に答える 1

4
OperatingSystemMXBean operatingSystemMXBean = 
    ManagementFactory.getOperatingSystemMXBean();

for (Method method: operatingSystemMXBean.getClass ().getMethods ()) 
{
    method.setAccessible (true);
    String methodName = method.getName ();
    if (methodName.startsWith ("get")
        && Modifier.isPublic (method.getModifiers ())
        && OperatingSystemMXBean.class.isAssignableFrom (
            method.getDeclaringClass ())) {
        try
        {
            System.out.println (
                methodName.substring (3) + ": " + 
                method.invoke (operatingSystemMXBean));
        }
        catch (Throwable ex)
        {
            // Ignore
        }
    }
}

出力は、オペレーティングシステムやJavaのバージョンによって異なります。LinuxでのJDK1.7の出力は次のとおりです。

FreeSwapSpaceSize: 2172059648
FreePhysicalMemorySize: 1757573120
CommittedVirtualMemorySize: 26741071872
MaxFileDescriptorCount: 8192
OpenFileDescriptorCount: 4
ProcessCpuLoad: 2.0251808355598717E-10
ProcessCpuTime: 60000000
SystemCpuLoad: 0.03673989450920194
TotalPhysicalMemorySize: 101439979520
TotalSwapSpaceSize: 4294950912
Name: Linux
ObjectName: java.lang:type=OperatingSystem
AvailableProcessors: 12
Arch: amd64
SystemLoadAverage: 1.86
Version: 2.6.32.54-0.3-default

値はコマンドで報告されSystemLoadAverageたものと同じです。load averagetop

于 2013-03-14T05:40:07.327 に答える