Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查Java当前版本是否高于1.6_Java - Fatal编程技术网

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

如何检查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

我希望在我的应用程序中支持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
}
这似乎符合要求,但我想知道是否有“更好”的方法


此外,如果我小心不要从我的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件事
}
可能存在以下重复项: