如何判断运行我的应用程序的 JVM 是 32 位还是 64 位?具体来说,我可以使用哪些函数或属性在程序中检测到这一点?
您检索标记此 JVM 位数的系统属性:
System.getProperty("sun.arch.data.model");
可能的结果是:
"32"
"64"
"unknown"
如HotSpot FAQ中所述:
编写Java代码时,如何区分32位和64位操作? 没有允许您区分 32 位和 64 位操作的公共 API。将 64 位视为一次编写,随处运行传统的另一个平台。但是,如果您想编写特定于平台的代码(为您感到羞耻),系统属性 sun.arch.data.model 的值为“32”、“64”或“unknown”。
编写Java代码时,如何区分32位和64位操作?
没有允许您区分 32 位和 64 位操作的公共 API。将 64 位视为一次编写,随处运行传统的另一个平台。但是,如果您想编写特定于平台的代码(为您感到羞耻),系统属性 sun.arch.data.model 的值为“32”、“64”或“unknown”。
一个可能需要这样做的示例是,如果您的 Java 代码依赖于本机库,并且您需要确定在启动时是加载 32 位还是 64 位版本的库。