Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java代码中知道我的操作系统是什么位体系结构?_Java_Operating System_Jvm - Fatal编程技术网

如何从Java代码中知道我的操作系统是什么位体系结构?

如何从Java代码中知道我的操作系统是什么位体系结构?,java,operating-system,jvm,Java,Operating System,Jvm,我想确定我的操作系统的位体系结构,即它是32位操作系统还是使用Java代码的64位操作系统 我尝试了以下方法: System.out.printlnSystem.getProperty("os.name")); //gives OS name -> Windows/Linux/Solaris System.out.println(System.getProperty("os.arch")); //gives JVM architecture -> amd64

我想确定我的操作系统的位体系结构,即它是32位操作系统还是使用Java代码的64位操作系统

我尝试了以下方法:

  System.out.printlnSystem.getProperty("os.name"));     //gives OS name -> Windows/Linux/Solaris
  System.out.println(System.getProperty("os.arch"));   //gives JVM architecture -> amd64
  System.out.println(System.getProperty("sun.arch.data.model"));   //gives JVM architecture again but just the bit -> 64
然而,以上这些都没有给出操作系统的体系结构。除了代码行之外,它们还提供注释中提到的相应输出


如何确定操作系统体系结构

您可以检查环境变量,例如Windows

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

我希望这一行能对你有所帮助

public class OS {

public static void main(String[] args) {
    //System.out.println("OS name : "+System.getProperty("os.name"));
    //System.out.println("OS arch : "+System.getProperty("os.arch"));
    //System.out.println(System.getProperty("sun.arch.data.model")); 
    //System.out.println(System.getenv().get("PROCESSOR_ARCHITECTURE"));


    System.getProperties().list(System.out);

 }
}

os.arch
告诉您程序运行的JRE-arch。不幸的是,没有直接的方法来了解操作系统架构,您必须继续使用JNI。“os.arch”有什么问题?它已经返回amd64?@反斜杠-是。它给出了JVM体系结构。那么,要找到操作系统架构,我必须扫描注册表吗?看来是剩下的唯一选择了。@crusader pyro,我想是的。或者,您也可以执行一个返回操作系统arch的命令(在linux上
uname-m
)。但是,作为JNI,这是依赖于操作系统的,因此您必须首先获取操作系统名称,然后切换以选择正确的命令来运行它。这不是重复的。链接的问题仅适用于Windows,答案与Windows相关。如何实现跨平台的问题(更好的问题imho)仍然没有答案。这与
System.out.println(System.getProperty(“os.arch”))
?System.out.println(System.getenv().get(“处理器体系结构”));给出了JRE体系结构。