如何判断我是在64位JVM还是32位JVM中运行(从程序中)?
如何判断运行我的应用程序的JVM是32位还是64位?具体来说,我可以在程序中使用哪些函数或属性来检测到这一点?
高分回答:
很多的知识点,真的需要写出来才会掌握!!! \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}
很多的知识点,真的需要写出来才会掌握!!!
您使用以下方法检索标记此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,请运行:
如果不是64位JVM,您将获得以下信息:
Error: This Java instance does not support a 64-bit JVM.
Please install the desired version.
复制代码
同样,要检查32位JVM,请运行:
如果不是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版本中不再可用。
作者建议:System.getProperty("sun.arch.data.model");
欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!! \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}
欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!
有最新、优雅的实现方式,我也会在文末写出我对本问答的见解 \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}
有最新、优雅的实现方式,我也会在文末写出我对本问答的见解
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞???? 求关注❤️ 求分享???? 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️