我正在使用的项目一直在使用
Java 6和jpathwatch(.95),现在正在升级到Java 7.目前在Windows 7和2008 Server上.我正在重构代码区域以使用新的Java 7 NIO并且相对简单 – 即使使用NIO.2来替换jpathwatch.但是,我们代码的文件监视区域开始无法进行单元测试.似乎Java 7 NIO不会在其他机器的UNC路径中获取更改 –
\\otherMach\path\to\watch.
为了测试,我实现了Java NIO教程站点http://docs.oracle.com/javase/tutorial/essential/io/fileio.html中的代码,然后在jpathwwatch导入而不是Java NIO导入中创建了一个重复的类交换. jpathwatch适用于UNC路径,但Java NIO不适用.它似乎注册甚至返回该位置的初始事件键:(示例输出)
INFO: Watching: \\otherMach\path\to\watch
DEBUG: Added: \\otherMach\path\to\watch
INFO: Got event key: sun.nio.fs.WindowsWatchService$WindowsWatchKey@1f26ecd2
INFO: event key for: \\otherMach\path\to\watch
但后来从未发现任何进一步的变化.
jpathwatch注册并报告目录和文件事件(尽管它在注册后不会立即报告初始事件).
INFO: Watching: \\otherMach\path\to\watch
DEBUG: Added: \\otherMach\path\to\watch
INFO: Got event key: name.pachler.nio.file.impl.WindowsPathWatchService$WatchRecord@79a7bd3b
INFO: event key for: \\otherMach\path\to\watch
INFO: EVENT RECEIVED: ENTRY_CREATE file/dir created - \\otherMach\path\to\watch\New folder
INFO: Got event key: name.pachler.nio.file.impl.WindowsPathWatchService$WatchRecord@79a7bd3b
INFO: event key for: \\otherMach\path\to\watch
INFO: EVENT RECEIVED: ENTRY_CREATE file/dir created - \\otherMach\path\to\watch\New Text Document.txt
有没有人看过UNC路径和Java 7 NIO.2有什么好运?还有其他更近期的解决方案?
谢谢,
-mjash