加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何找到OS位类型

发布时间:2020-12-14 16:27:54 所属栏目:Java 来源:网络整理
导读:参见英文答案 How can I check the bitness of my OS using Java?? (J2SE,not os.arch)4个 我想知道操作系统类型,意味着它是64位操作系统或32位操作系统.但是我从32位/ 64位可执行文件获得不同的响应,可以获取有关操作系统的系统属性 我从系统属性得到细节.
参见英文答案 > How can I check the bitness of my OS using Java?? (J2SE,not os.arch)4个
我想知道操作系统类型,意味着它是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";

Reference

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读