2012-09-09 87 views
0

請看看下面的代碼獲取使用環境變量特定的系統信息

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

使用這個代碼片斷,我得到我需要的所有信息,以及大量的NO-所需的信息。說實話,我需要的是處理器數量和處理器標識符。這兩個存儲在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或用戶名。像那樣,它可能在其他系統中有各種其他名稱。

但是,我真的不需要循環提供給我的所有信息。我只需要那兩個。我正在考慮使用下面的代碼。

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

然而,在這種情況下,我不知道我需要多少系統檢查(我的意思是,這些環境變量從OS更改操作系統或系統與系統嗎?如果我更清楚,這些變量在Linux內核中是相同的還是在Ubuntu,Fedora,Red Hat等之間變化的?)

我不知道如何通過省略其餘部分來獲得唯一需要的兩個數據。請幫忙。我很高興看到代碼的幫助。謝謝

+0

檢查[這個問題](http://stackoverflow.com/questions/25552/using-java-to-get-os-level-system-information)。 – martijno

+0

這是關於獲取JVM信息 –

回答

0

CPU /內核數量:Finding Number of Cores in Java 不認爲有可能以便捷的跨平臺方式獲得CPU類型。

+0

這就是JVM。我無法使用這個JVM的情況是,單一的虛假信息=數百萬用戶以錯誤的方式修復計算機..這是一件非常糟糕的事情! –

2

你可以試試Runtime.getRuntime().availableProcessors();

+0

這正是我的答案,但提供了整個問題,而不是:) –

+0

不,它是基於JVM的。它將獲得JVM iNFO –