本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接
如何判断我是在64位JVM还是32位JVM中运行(从程序中)?
如何判断运行我的应用程序的JVM是32位还是64位?具体来说,我可以在程序中使用哪些函数或属性来检测到这一点?
高分回答:
您使用以下方法检索标记此JVM的位数的系统属性:
System.getProperty("sun.arch.data.model");
可能的结果是:
"32" – 32位JVM
"64" – 64位JVM
"unknown" –未知的JVM
如HotSpot常见问题解答所述:
编写Java代码时,如何区分32位和64位操作?
没有公共的API可以让您区分32位和64位操作。认为64位只是一次编写,可在任何地方运行的传统平台。但是,如果您要编写特定于平台的代码(很可惜),则系统属性sun.arch.data.model的值为“ 32”,“ 64”或“ unknown”。
例如,如果您的Java代码依赖于本机库,那么您可能需要这样做,并且您需要确定在启动时是加载32位还是64位版本的库。
高分回答:
对于某些版本的Java,您可以从命令行使用标志-d32和来检查JVM的位-d64。
$ java -help
...
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
要检查64位JVM,请运行:
$ java -d64 -version
如果不是64位JVM,您将获得以下信息:
Error: This Java instance does not support a 64-bit JVM.
Please install the desired version.
同样,要检查32位JVM,请运行:
$ java -d32 -version
如果不是32位JVM,您将获得以下信息:
Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.
这些标志是在Java 7中添加的,在Java 9中已弃用,在Java 10中已删除,在现代Java版本中不再可用。
文章翻译自kgs4h5t57thfb6iyuz6dqtun5y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/2…
作者建议:System.getProperty("sun.arch.data.model");
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️