如何检查当前版本的Java是否高于1.6

时间:2012-02-23 19:31:41

标签: java

我想在我的应用程序中支持Java 1.5+,但如果用户使用Java 1.6 +特定的API调用在Java 1.6+ JVM上运行,则有选择地启用功能。所以我需要一种方法来检查当前版本的JVM并确保只使用可用的API。当然,我将使用-target 1.5编译。

我想出了:

if (System.getProperty("java.vm.version").startsWith("1.5")) {
    // Do 1.5 things
} else {
    // Do 1.6+ things
}

这似乎符合要求,但我想知道是否有“更好”的方式?

此外,如果我小心不要从我的1.5代码中调用任何1.6 API调用,那么在1.5 JVM上运行时,我仍有可能获得NoSuchMethodError s,NoClassDefFound s ?

1 个答案:

答案 0 :(得分:3)

您可以使用反射来查看您想要存在的事物是否存在:

try {
    DesiredClass.class.getMethod("desiredMethod", <parameter types...>)
    // Do 1.6 things
}
catch (NoSuchMethodException e) {
    // Do 1.5 things
}