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

时间:2013-03-06 06:52:15

标签: java cpu-architecture

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

3 个答案:

答案 0 :(得分:6)

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

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

或64位的情况:

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

另一种方法是使用“os.arch”system property

System.getProperty("os.arch");

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

注意that

  

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

相关链接:

答案 1 :(得分:6)

System.getProperty ("os.arch");

在我的电脑上返回amd64

答案 2 :(得分:4)

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

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

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

如果您需要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);
    }
}