【发布时间】:2014-08-04 16:59:27
【问题描述】:
经过对同一主题的一些研究,我使用方法“getVersion()”来检查JVM是64位还是32位。
public static String getVersion()
{
String version = System.getProperty("sun.arch.data.model");
if (version != null && version.contains("64")){
return "64";
}else{
return "32";
}
}
在某些情况下会出错。是的,正如标志名称所提到的,该方法显然依赖于太阳。我也尝试获取属性“os.arch”。但在某些情况下,它会错误地识别 JVM。 有没有更可靠的检查方法? 我的应用程序完全基于 Windows。而且我不希望该方法在任何其他平台上工作。
【问题讨论】:
-
@Nidhin 你介意使用 JNI 和一个额外的 DLL 文件吗?
-
“而且我不希望该方法在任何其他平台上工作。”这与 Java 的主要哲学之一有些矛盾——一次编写,随处运行。你能做的最好的可能是一个
native电话。 -
@Joe 没有兄弟。我不这么认为。请再次检查我的问题。我看到了那个链接。甚至那个答案也不能完全解决我的问题。我认为这个问题很清楚。
-
您说“在某些情况下出错了”。还有更详细的吗?链接的问题正是针对此问题的 Oracle 推荐方法。
标签: java jvm 32bit-64bit