我正在开发一个软件应用程序,该程序可以检查您所安装的软件类型,但是要这样做,我必须知道该操作系统是32位还是64位操作系统。
我尝试了System.getProperty(“ os.arch”); 但是后来我读到,该命令仅向我们显示了JDK / JRE的位,而不是OS本身。如果您能告诉我如何知道所使用的操作系统(Windows 7,Mac OS,Ubuntu等),那简直太棒了。
System.getProperty(“os.arch”);
应该在所有平台上都可用,请参阅Java 系统属性教程以获取更多信息。
但是 ,如果是32位JVM,则64位Windows平台将依赖JVM。实际上,64位Windows可以对环境进行任何32位处理,以帮助旧的32位程序在64位OS上正常工作。阅读有关WOW64的MSDN文章以获取更多信息。
由于WOW64,32位JVM调用System.getProperty("os.arch")将返回“ x86”。如果要获取Windows上底层操作系统的 真实 体系结构,请使用以下逻辑:
System.getProperty("os.arch")
String arch = System.getenv("PROCESSOR_ARCHITECTURE"); String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432"); String realArch = arch != null && arch.endsWith("64") || wow64Arch != null && wow64Arch.endsWith("64") ? "64" : "32";