一、实时监控使用场景
(a)实时刷新文件缓存,比如页面图片
(b)实时刷新工程配置文件
(c)实时同步文件到镜像路径,比如与rsync结合,实现跨平台实时同步
二、Jnotify官网地址:Jnotify
JNotify is a java library that allow java application to listen to file system events, such as:File created;File modified;File renamed;File deleted
它能让java程序监听文件系统的事件,如:文件(夹)创建,文件(夹)修改,文件(夹)重命名,文件(夹)删除。
支持Linux/Windows/MacOS,由于使用JNI调用了本地库所以支持的的并不完美。
Win下使用:要在java.library.path下加入依赖的dll (jnotify.dll/jnotify_64bit.dll)。
Linux下使用:要在java.library.path下加入依赖的so(libjnotify.so)。
特别说明:
0.94版:仅仅支持GLIBC库版本在2.1.2之上的,它的实现基于inotify本地库。32位,64位都支持。
0.93版:支持GLIBC库版本在2.1.2之下的,但仅仅支持32位,64位的so库为提供。0.92同0.93。
所以Jnotify还无法跨平台。但是使用起来还是很简单的。
看代码,代码注释有详细的说明:
public class JnotifyTest {
public static void main(String[] args) {
try {
new JnotifyTest().test();
} catch (Exception e) {
e.printStackTrace();
}
}
public void test() throws Exception {
//监控路径
String path = "E:\\test\\rsync\\base";
//可随意组合监听事件类型
int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED
| JNotify.FILE_MODIFIED | JN