0

次のコードを見てください

Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            System.out.format("%s=%s%n",
                              envName,
                              env.get(envName));}

このコード スニペットを使用して、必要なすべての情報と不要な情報を取得します。正直なところ、必要なのはプロセッサの数とプロセッサ識別子です。これら 2 つは、Windows システムの環境変数 PROCESSOR_IDENTIFIER および NUMBER_OF_PROCESSORS に格納されます。

このコードを呼び出す方法はありません

System.out.println("Processor Data: "+ System.getenv("PROCESSOR_IDENTIFIER")); 
    System.out.println("Number of Processors: "+System.getenv("NUMBER_OF_PROCESSORS"));

その理由は、オラクル自身が環境変数がシステムごとに異なると言っているからです。つまり、USERNAME Windows 環境変数は、UNIX システムの LOGIN またはユーザー名です。このように、他のシステムではさまざまな名前が付けられている可能性があります。

しかし、ループが提供するすべての情報は本当に必要ありません。その2つだけが必要です。以下のようなコードを使用することを考えています。

if("os.name" == "Windows")
{
System.out.println("Processor Data: "+ System.getenv("PROCESSOR_IDENTIFIER")); 
}

ただし、その場合、チェックする必要があるシステムの数がわかりません (つまり、これらの環境変数は OS ごとに、またはシステムごとに変更されますか?もっと明確にすると、これらの変数は Linux でも同じですか?カーネルまたは Ubuntu、Fedora、Red Hat などでの変更?)

残りを省略して、必要な2つのデータだけを取得する方法がわかりません。助けてください。コードがお役に立てば幸いです。ありがとうございました

4

2 に答える 2

2

試してみRuntime.getRuntime().availableProcessors();ませんか?

于 2012-09-09T17:54:34.323 に答える
0

CPU/コアの数: Java でコアの数を見つける 便利なクロス プラットフォームの方法で CPU の種類を取得できるとは思わないでください。

于 2012-09-09T17:46:53.453 に答える