在运行时获取Java版本

我需要解决JDK 1.5中的Java错误,该错误已在1.6中修复。我正在使用以下条件:

if (System.getProperty("java.version").startsWith("1.5.")) {

...

} else {

...

}

这对其他JVM有用吗?有更好的方法来检查吗?

回答:

java.version是每个JVM中都存在的系统属性。有两种可能的格式:

  • Java的8或降低:1.6.0_23,1.7.0,1.7.0_80,1.8.0_211
  • Java的9或更高:9.0.1,11.0.4,12,12.0.1

这是提取主要版本的技巧:如果它是1.x.y_z版本字符串,则提取字符串索引2处的字符。如果是x.y.z版本字符串,则将其剪切为第一个点字符(如果存在)。

private static int getVersion() {

String version = System.getProperty("java.version");

if(version.startsWith("1.")) {

version = version.substring(2, 3);

} else {

int dot = version.indexOf(".");

if(dot != -1) { version = version.substring(0, dot); }

} return Integer.parseInt(version);

}

现在,您可以更加轻松地检查版本:

if(getVersion() < 6) {

// ...

}

以上是 在运行时获取Java版本 的全部内容, 来源链接: utcz.com/qa/423336.html

回到顶部