参见英文答案 >
How can I check the bitness of my OS using Java?? (J2SE,not os.arch)4个
我想知道操作系统类型,意味着它是64位操作系统或32位操作系统.但是我从32位/ 64位可执行文件获得不同的响应,可以获取有关操作系统的系统属性
我想知道操作系统类型,意味着它是64位操作系统或32位操作系统.但是我从32位/ 64位可执行文件获得不同的响应,可以获取有关操作系统的系统属性
我从系统属性得到细节.我有64位机器和操作系统Windows 8.1 X64
"OS Architecture : " + System.getProperty("os.arch")); "OS Name : " + System.getProperty("os.name")); "OS Version : " + System.getProperty("os.version") "Data Model : " + System.getProperty("sun.arch.data.model"));
当运行64位可执行文件获得以下响应.
操作系统架构:amd64
操作系统名称:Windows 8
操作系统版本:6.2 amd64
数据模型:64
当运行32位可执行文件获得以下响应.
操作系统架构:x86
操作系统名称:Windows 8
操作系统版本:6.2 x86
数据模型:32
如何获取操作系统的实际位类型?
解决方法
System.getProperty("os.arch");
应在所有平台上都可用,有关详细信息,请参阅Java系统属性教程.
但是如果64位的JVM是64位的Windows平台,那么这个JVM就会出现在JVM上.实际上,64位Windows将涉及任何关于环境的32位进程,以帮助旧的32位程序在64位操作系统上正常工作.有关更多信息,请阅读有关WOW64的MSDN文章.
作为WOW64的结果,调用System.getProperty(“os.arch”)的32位JVM将返回“x86”.如果要在Windows上获得基础操作系统的真实架构,请使用以下逻辑:
String arch = System.getenv("PROCESSOR_ARCHITECTURE"); String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432"); String realArch = arch.endsWith("64") || wow64Arch != null && wow64Arch.endsWith("64") ? "64" : "32";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。