【发布时间】:2014-08-07 12:55:02
【问题描述】:
我使用以下问题的答案来确定系统位版本,除了在 mac osx 上也可以正常工作: How can I check the bitness of my OS using Java?? (J2SE, not os.arch)
String arch = System.getenv("PROCESSOR_ARCHITECTURE");
String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432");
String realArch = arch.endsWith("64")
|| wow64Arch != null && wow64Arch.endsWith("64")
? "64" : "32";
最后一行 (realArch) 在 mac 上给了我一个 NPE,你知道我该如何解决它,我在 mac 上也得到了正确的位版本吗?
更新:
我看错了答案,抱歉。它在 windows、mac osx 和 ubuntu 上运行良好,只需稍作改动:
String realArch = System.getProperty("os.arch").endsWith("64")
? "64" : "32";
if (System.getProperty("os.name").startsWith("Windows")) {
String arch = System.getenv("PROCESSOR_ARCHITECTURE");
String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432");
realArch = arch.endsWith("64")
|| wow64Arch != null && wow64Arch.endsWith("64")
? "64" : "32";
}
【问题讨论】:
标签: java macos operating-system 64-bit