如何检查Java当前版本是否高于1.6
我希望在我的应用程序中支持Java1.5+,但如果用户运行在Java1.6+JVM上,使用Java1.6+特定的API调用,则有选择地启用功能。因此,我需要一种方法来检查JVM的当前版本,并确保只使用可用的API。当然,我将使用如何检查Java当前版本是否高于1.6,java,Java,我希望在我的应用程序中支持Java1.5+,但如果用户运行在Java1.6+JVM上,使用Java1.6+特定的API调用,则有选择地启用功能。因此,我需要一种方法来检查JVM的当前版本,并确保只使用可用的API。当然,我将使用-target1.5进行编译 我想到了: if (System.getProperty("java.vm.version").startsWith("1.5")) { // Do 1.5 things } else { // Do 1.6+ things
-target1.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?您可以使用反射来查看您想要做的事情是否存在:
try {
DesiredClass.class.getMethod("desiredMethod", <parameter types...>)
// Do 1.6 things
}
catch (NoSuchMethodException e) {
// Do 1.5 things
}
试试看{
DesiredClass.class.getMethod(“desiredMethod”,)
//做1.6件事
}
捕获(无此方法例外){
//做1.5件事
}
可能存在以下重复项: