如果我开始使用Java 7标准库,我会遇到麻烦吗?

nfm*_*nfm 3 java jvm java-7

我正在编写一个需要在多个平台上监视文件系统事件的程序.Java 7中包括一个新的标准库WatchService,其充当用于不同类型的文件系统的事件处理程序(的抽象inotify,FSEvents,FileSystemWatcher等等).

是否是使用Java 7编译器编译的代码需要Java 7 JVM来运行它的情况?

如果是这样,我是否会在没有为该平台安装/可用JVM 7的客户机上遇到各种问题(较旧的OSX,Windows XP等)?

Ste*_*n C 5

是否是使用Java 7编译器编译的代码需要Java 7 JVM来运行它的情况?

是.

您将能够使用Java 7编译器进行编译-target 6.0,但如果代码依赖于Java 7特定的类库,那将无济于事......正如您的那样.

如果是这样,我是否会在没有为该平台安装/可用JVM 7的客户机上遇到各种问题(较旧的OSX,Windows XP等)?

是.在"已安装"的前端肯定是这种情况.如果您的代码依赖于Java 7,那么最好的选择是让您的客户安装Java 7 JVM来运行它.(并行安装多个版本的Java是一件简单的事情,其他Java应用程序很可能可以在Java 7 JVM中正常运行.)

在"可用"方面,我们不确定在Oracle实际发布Java 7之前将支持哪些平台.如果存在不支持的重要平台,则很可能:

  • 有人会将OpenJDK 7移植到平台上,或者
  • 第三方供应商(例如IBM)将在其 Java 7产品中支持它.

(但我不打赌任何支持Windows XP前版本的人,以及旧版本的OSX都是值得怀疑的,IMO.)


我的建议是不要"跳"到Java 7 ...... 但是 ......如果支持旧平台是一个重要的要求.