确定java中的os架构和位数

时间:2013-05-14 17:30:18

标签: java dynamic architecture operating-system

我希望能够在我的Java应用程序中动态确定操作系统,体系结构和位。

例如,我希望我的应用程序知道它何时在Solaris 32位sparc机器上或在x86机器上。

我知道系统get属性返回JVM的arch,但有没有真正找到真正的os arch和bit-ness?

1 个答案:

答案 0 :(得分:2)

获取字节顺序的最简单方法是使用ByteOrder.nativeOrder();

操作系统位于系统属性中。

要确定JVM是否为64位,我使用以下内容从ehcache中获取。

private static final boolean IS64BIT = is64Bit0();

public static boolean is64Bit() {
    return IS64BIT;
}

private static boolean is64Bit0() {
    String systemProp;
    systemProp = System.getProperty("com.ibm.vm.bitmode");
    if (systemProp != null) {
        return systemProp.equals("64");
    }
    systemProp = System.getProperty("sun.arch.data.model");
    if (systemProp != null) {
        return systemProp.equals("64");
    }
    systemProp = System.getProperty("java.vm.version");
    return systemProp != null && systemProp.contains("_64");
}