我需要解决 JDK 1.5 中的一个 Java 错误,该错误已在 1.6 中修复。我正在使用以下条件:
if (System.getProperty("java.version").startsWith("1.5.")) {
...
} else {
...
}
这是否适用于其他 JVM?有没有更好的方法来检查这个?
最佳答案
java.version
是 system property存在于每个 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 - 在运行时获取 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591083/