是否有可能在java中检测处理器架构?

是否有可能在java中检测处理器架构? 像x86或sun SPARC等? 如果是这样,我该怎么做呢?

System.getProperty ("os.arch"); 

在我的电脑上返回amd64

您可以尝试使用System.getenv()获取环境变量,使用PROCESSOR_ARCHITECTURE键来获取CPU架构:

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

或者在64位的情况下:

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

另一种方法是使用“os.arch” 系统属性 :

 System.getProperty("os.arch"); 

并且您可能需要在使用System.getProperty("os.name")之前获取操作系统,因为这与操作系统相关,正如QMuhammad在他的回答中提到的那样。

请注意:

系统属性和环境变量都是名称和值之间的概念映射。 这两种机制都可用于将用户定义的信息传递给Java进程。

相关链接:

  • System.getenv()doc
  • ChrisH的回答
  • 为什么%processor_architecture%总是返回x86而不是AMD64
  • Java的“os.arch”系统属性是JRE的位,而不是操作系统
  • 使用Java查找sytem体系结构

您可以使用以下属性来获取处理器体系结构:

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

它返回“amd64”,因为我正在使用英特尔的64位处理器,而英特尔64位使用amd架构。

如果您需要OS体系结构值,可以使用此属性“os.arch”

如果您需要任何其他财产,那么这可能对您有所帮助。 我编写了以下代码片段来获取所有系统属性:

  public static void main(String[] args) { Properties props = System.getProperties(); Enumeration keys = props.keys(); while(keys.hasMoreElements()){ Object key = keys.nextElement(); Object value = props.get(key); System.out.println("Key: "+key + " Value: "+value); } } 
Interesting Posts