我需要解决JDK 1.5中的Java错误,该错误已在1.6中修复。我正在使用以下条件:
if (System.getProperty("java.version").startsWith("1.5.")) { ... } else { ... }
这对其他JVM有用吗?有更好的方法来检查吗?
java.version是每个JVM中都存在的系统属性。有两种可能的格式:
java.version
这是提取主要版本的技巧:如果它是1.x.y_z版本字符串,则提取字符串索引2处的字符。如果是x.y.z版本字符串,则将其剪切为第一个点字符(如果存在)。
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) { // ... }