当前位置: 首页 > 面试题库 >

如何使用Java检查操作系统的位数?(J2SE,不是os.arch)

谢骏奇
2023-03-14
问题内容

我正在开发一个软件应用程序,该程序可以检查您所安装的软件类型,但是要这样做,我必须知道该操作系统是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上底层操作系统的
真实 体系结构,请使用以下逻辑:

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";


 类似资料:
  • 问题内容: 我要检查操作系统(在运行脚本的计算机上)。 我知道我可以在Linux 中使用它,但是它在控制台中给了我一条消息,我想写一个变量。 如果脚本可以告诉您它是Mac,Windows还是Linux,那就可以了。我该如何检查? 问题答案: 您可以使用: 具有比更好的粒度。 有关有效值,请参阅文档。

  • GCC编译器提供了一组内置函数来测试某些处理器特性,如某些指令集的可用性。但是,根据这个线程,我们也可能知道某些cpu功能可能不会被OS启用。所以问题是:<code>__builtin_cpu_supports</code>intrinsic是否也检查操作系统是否启用了某些处理器功能?

  • 问题内容: 如何使用JavaScript查找操作系统名称和操作系统版本? 问题答案: 如果您使用列出所有的属性 你会看到这样的东西 请注意,该属性为您提供Windows版本。另外,您应该知道:

  • 本文向大家介绍C#如何检测操作系统版本,包括了C#如何检测操作系统版本的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#检测操作系统版本的方法,供大家参考,具体内容如下 我们通过System.Environment.OSVersion.Version获得操作系统的版本号,然后再根据版本号进行判断操作系统是什么版本。 Version 类的属性 参考于:https://msdn.mic

  • 问题内容: 我正在玩一些微服务,并在笔记本电脑上运行它们,只需为每个微服务分配一个新端口。问题是我想重新启动其中一个,所以我必须将它们全部关闭,因为在操作系统中,进程都称为java。而且尽管我有时会猜到最后一个启动的pid最高,但这并不是绝对安全的选择… 因此,有没有办法在操作系统中启动Java应用程序并为其分配名称?也许像 问题答案: 如果需要区分不同的Java程序,可以使用jps命令,该命令为

  • 问题内容: 有谁知道我会怎么做才能检测到Windows在Python下的版本。我需要知道这是为Program Files使用正确的文件夹的一种方式。 非常感谢 问题答案: 模块 -访问基础平台的标识数据 在64位Windows上,32位Python返回: 这意味着 即使已接受此答案,也不正确。 请参阅以下一些答案,以了解可能适用于不同情况的选项。