是否可以选择加入Java 7 API?

时间:2012-01-06 09:37:14

标签: java java-7

  

可能重复:
  Using Java 7 SDK features in Java 6

我有一个Java应用程序(实际上它是一个Scala应用程序,但我认为这不会发生太大变化),在JVM 6上运行。

我想使用一些新的Java 7 API,如NIO2,如果它们可用,但如果它们不可用则回退到其他实现。目标是尽可能使用Java 7 API,同时保持与Java 6的兼容性与相同的二进制文件(jar)。

应该可以通过Class.forName("java.nio.file.attribute.BasicFileAttributeView")查看,但我不知道如何,例如java类文件有不同的版本,这使得在Java 6中也可以运行的代码中无法使用Java 7类。

1 个答案:

答案 0 :(得分:3)

一种方法是 - 使用接口编写应用程序逻辑。将实现捆绑在两个不同的jar中 - 一个包含基于JDK6的实现,另一个包含JDK7实现。在运行时,使用System.getProperty(“java.version”)获取java版本并实例化适当的实现(或者可以使用策略模式来设置适当的策略)。