java - 确定java中的操作系统架构和位数

标签 java dynamic architecture operating-system

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

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

我知道系统 get 属性返回 JVM 的架构,但是有什么可以真正找出真正的操作系统架构和位数吗?

最佳答案

获取字节顺序的最简单方法是使用 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");
}

关于java - 确定java中的操作系统架构和位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549322/

相关文章:

java - 错误: cannot access Filter

java - 亚马逊上的 Hibernate 搜索问题

java - HashMap 值在所有键中被替换

java - JavaDocs 报告生成中发生错误 :Exit code: 1 - javadoc: error - invalid flag: -author

c# - asp.net webapi动态授权

ruby-on-rails - Rails 应用程序中的非持久数据

c# - 如果动态对象不包含属性,则获取默认值

php - 动态加载命名空间类

dependency-injection - 依赖倒置原则是否意味着我必须为每个模块创建一个接口(interface)?

c# - 如何获得有关 CQRS 更改的即时反馈