是否可以在java中检测处理器体系结构?

是否可以在java中检测处理器体系结构?,java,cpu-architecture,Java,Cpu Architecture,是否可以在java中检测处理器体系结构?比如x86或sun SPARC等?如果是这样,我该怎么做呢?您可以尝试获取环境变量,使用处理器架构键获取CPU架构: System.out.println(System.getenv("PROCESSOR_ARCHITECTURE")); 或在64位的情况下: System.out.println(System.getenv("PROCESSOR_ARCHITEW6432")); 另一种方法是使用“os.arch”: 在使用System.getProp

是否可以在java中检测处理器体系结构?比如x86或sun SPARC等?如果是这样,我该怎么做呢?

您可以尝试获取环境变量,使用
处理器架构
键获取CPU架构:

System.out.println(System.getenv("PROCESSOR_ARCHITECTURE"));
或在64位的情况下:

System.out.println(System.getenv("PROCESSOR_ARCHITEW6432"));
另一种方法是使用“os.arch”:

在使用
System.getProperty(“OS.name”)
之前,您可能需要获取操作系统,因为正如QMuhammad在回答中提到的那样,这依赖于操作系统

注意:

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

相关链接:


在我的电脑上返回
amd64

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

     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);
    }
}
publicstaticvoidmain(字符串[]args){
Properties props=System.getProperties();
枚举键=props.keys();
while(keys.hasMoreElements()){
对象键=keys.nextElement();
对象值=props.get(键);
System.out.println(“键:+Key+”值:+Value”);
}
}

哪个操作系统?在linux上读取某些文件(如/proc/cpuinfo)会有帮助吗?@TwoMore:Solaris和windowsmostly@shawn那么,您最好使用纯java的平台无关解决方案,请参见下面的答案。这个问题以重复的形式结束,但是链接的问题并不是专门询问处理器架构。不要去那里,但阅读一些答案以获得更好的信息。这只适用于MS Windows,也只适用于某些版本的MS Windows。@MikhailVladimirov我编辑了我的答案,但你提到的很有趣,虽然这与平台无关,但至少官方规范中描述了这一点:@MikhailVladimirov谢谢,+1仅用于Windows NT(98、2000、xp、vista、7、8、8.1等)上的链接属性
sun.cpu.isalist
不是标准。您最好使用标准的
os.arch
属性。我提到了这两个属性,以便两者都可以工作。此外,“sun.cpu.isalist”不是在Linux上设置的,而是在Solaris和Windows上设置的。取决于您使用的平台。在某些情况下,64位Windows和32位JVM进程似乎无法正常工作。请参见:
     System.getProperty("sun.cpu.isalist");
    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);
    }
}