2013-03-06 9 views

Antwort

6

Sie können die System.getenv() versuchen Umgebungsvariablen zu erhalten, verwenden Sie die PROCESSOR_ARCHITECTURE Taste, um die CPU-architechture zu erhalten:

System.out.println(System.getenv("PROCESSOR_ARCHITECTURE")); 

oder im Falle von 64-Bit-:

System.out.println(System.getenv("PROCESSOR_ARCHITEW6432")); 

Der andere Weg wäre sein, die "os.arch" zu verwenden system property:

System.getProperty("os.arch"); 

und Sie müssen möglicherweise das Betriebssystem, bevor Sie System.getProperty("os.name") verwenden, da dies Betriebssystem abhängig ist wie QMuhammad in seiner Antwort erwähnt.

Hinweis that:

Systemeigenschaften und Umgebungsvariablen sind beide konzeptuell Zuordnungen zwischen Namen und Werte. Beide Mechanismen können verwendet werden, um benutzerdefinierte Informationen an einen Java-Prozess zu übergeben.

Relevante Links:

+1

Dies funktioniert nur unter MS Windows und nur bei bestimmten Versionen von MS Windows. –

+0

@MikhailVladimirov Ich habe meine Antwort bearbeitet, aber es ist ziemlich interessant, was Sie erwähnt haben, dachte, das wäre plattformunabhängig – CloudyMarble

+0

Zumindest ist dies in der offiziellen Spezifikation beschrieben: http://docs.oracle.com/javase/7/docs/api/ Java/lang/System.html # getProperties% 28% 29 –

6
System.getProperty ("os.arch"); 

Auf meinem PC gibt amd64 zurück.

+0

Dies scheint nicht richtig zu funktionieren Einige Fälle von 64-Bit-Windows mit 32-Bit-JVM-Prozess finden Sie hier: http://stackoverflow.com/a/5940770/395659 – CloudyMarble

4

können Sie folgende Eigenschaft verwenden, um Prozessorarchitektur zu erhalten:

 System.getProperty("sun.cpu.isalist"); 

Es gibt "amd64", wie ich Intels bin mit 64-Bit-Prozessor und Intel 64-Bit-AMD-Architektur verwendet.

Wenn Sie OS Architektur Wert benötigen, können Sie diese Eigenschaft „os.arch“ verwenden

Und wenn Sie irgendeine andere Eigenschaft benötigen, dann könnte dies Ihnen helfen. Ich schrieb folgendes Snippet, um alle Systemeigenschaften zu erhalten:

public static void main(String[] args) { 
    Properties props = System.getProperties(); 
    Enumeration<Object> keys = props.keys(); 

    while(keys.hasMoreElements()){ 
     Object key = keys.nextElement(); 
     Object value = props.get(key); 
     System.out.println("Key: "+key + " Value: "+value); 
    } 
} 
+1

Eigenschaft 'sun.cpu.isalist' ist nicht Standard. Sie verwenden besser die Standardeigenschaft "os.arch". –

+1

Ich erwähnte beide so beide können arbeiten. Außerdem ist "sun.cpu.isalist" nicht unter Linux eingestellt, sondern unter Solaris und Windows. Hängt davon ab, an welcher Plattform Sie gerade arbeiten. –