在运行时获取 Java 版本
我需要解决JDK 1.5中的Java错误,该错误已在1.6中修复。我使用以下条件:
if (System.getProperty("java.version").startsWith("1.5.")) {
...
} else {
...
}
这是否适用于其他 JVM?有没有更好的方法来检查这一点?
我需要解决JDK 1.5中的Java错误,该错误已在1.6中修复。我使用以下条件:
if (System.getProperty("java.version").startsWith("1.5.")) {
...
} else {
...
}
这是否适用于其他 JVM?有没有更好的方法来检查这一点?
java.version
是存在于每个 JVM 中的系统属性。它有两种可能的格式:
1.6.0_23
1.7.0
1.7.0_80
1.8.0_211
9.0.1
11.0.4
12
12.0.1
下面是提取主要版本的技巧:如果它是版本字符串,则在字符串的索引 2 处提取字符。如果是版本字符串,请将字符串剪切为其第一个点字符(如果存在)。1.x.y_z
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) {
// ...
}
如何从包元信息中获取版本:
String version = Runtime.class.getPackage().getImplementationVersion();
打印出如下内容:
1.7.0_13