在Java中,如何在运行时确定主机的系统架构?使用我当前的设置,Windows7 x64,Java JRE 32位,Intel Xeon w/ Intel64,系统属性似乎最明显地反映了Java的体系结构。
System.getProperty("os.arch");
System.getProperty("sun.arch.data.model");结果:
x86
32
发布于 2010-08-12 05:10:52
您可以通过调用ManagementFactory.getOperatingSystemMXBean()来访问OperatingSystemMXBean,它将为您提供:
字符串getName()返回操作系统名称。此方法相当于System.getProperty("os.name")。
String getArch()返回操作系统架构。此方法相当于System.getProperty("os.arch")。
字符串getVersion()返回操作系统版本。此方法相当于System.getProperty("os.version")。
Java int getAvailableProcessors()返回虚拟机可用的处理器数量。此方法等效于Runtime.availableProcessors()方法。
double getSystemLoadAverage()返回最近一分钟的系统平均负载。系统负载平均值是在一段时间内排队到可用处理器的可运行实体的数量与在可用处理器上运行的可运行实体的数量之和。计算平均负载的方法是特定于操作系统的,但通常是一个阻尼的时间相关平均值。如果负载平均值不可用,则返回负值。
See this page,了解有关可用选项的更多详细信息。此外,大多数容器都有更多关于容器的可用选项。
发布于 2011-07-29 00:55:19
我还没有找到在Windows上做到这一点的方法,但Windows不是我们支持的平台之一。这往往适用于Linux/Solaris变体,尽管除了我们的典型部署平台之外,我没有测试过很多其他的平台。
我不能很容易地复制这个代码,所以它是部分伪代码…
IMPORTANT: Fallback for ANY problem/exception, return "os.arch"
1) Check if System.getProperty("os.name") doesn't contain Windows
2) Exec "uname -p", capture the output发布于 2012-10-10 01:40:57
系统属性"sun.cpu.isalist“可能会提供一些关于处理器架构的信息。然而,在Windows操作系统中,它只返回64位JRE中的一个有用的值,后者返回“amd64”。不幸的是,在32位JRE中,此属性返回:“pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86”
我在装有JRE1.6 (32位和64位)的Windows7 x64和英特尔I7上测试了它。
https://stackoverflow.com/questions/3462387
复制相似问题