是否有可能发现在Java处理器架构? [重复](Is it possible to detect

2019-07-21 02:12发布

这个问题已经在这里有一个答案:

  • 获得操作系统级的系统信息 15个回答

是否有可能发现在Java处理器架构? 像x86或SUN SPARC等? 如果是这样,我怎么会去这样做呢?

Answer 1:

System.getProperty ("os.arch");

在我的PC返回amd64



Answer 2:

您可以尝试System.getenv()获取环境变量,使用PROCESSOR_ARCHITECTURE键获得CPU-architechture:

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

或在64位的情况下:

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

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

System.getProperty("os.arch");

您可能需要使用之前获得OS System.getProperty("os.name")因为这取决于操作系统的QMuhammad在他的回答中提到。

注意的是 :

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

相关链接:

  • System.getenv()DOC
  • ChrisH的答案
  • 为什么%PROCESSOR_ARCHITECTURE%总是返回86,而不是AMD64的
  • Java的“os.arch”系统属性是JRE的位数,而不是操作系统
  • 找出使用Java系统正架构


Answer 3:

您可以使用下面的属性来获取处理器架构:

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

这是我使用英特尔的64位处理器和Intel 64位采用了AMD架构返回“AMD64”。

如果你需要OS架构价值,你可以使用这个属性“os.arch”

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

    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);
    }
}


文章来源: Is it possible to detect processor architecture in java? [duplicate]