我正在编写一个需要在多个平台上监视文件系统事件的程序.Java 7中包括一个新的标准库WatchService,其充当用于不同类型的文件系统的事件处理程序(的抽象inotify,FSEvents,FileSystemWatcher等等).
是否是使用Java 7编译器编译的代码需要Java 7 JVM来运行它的情况?
如果是这样,我是否会在没有为该平台安装/可用JVM 7的客户机上遇到各种问题(较旧的OSX,Windows XP等)?
是否是使用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之前将支持哪些平台.如果存在不支持的重要平台,则很可能:
(但我不打赌任何支持Windows XP前版本的人,以及旧版本的OSX都是值得怀疑的,IMO.)
我的建议是不要"跳"到Java 7 ...... 但是 ......如果支持旧平台是一个重要的要求.