`
yangyou230
  • 浏览: 1646476 次
文章分类
社区版块
存档分类

UBuntu9.10开发Java程序拦截inotify文件事件

 
阅读更多

从这里获得最新版本http://code.google.com/p/inotify-java/,并参考下面的安装手册


注意,当前版本号是0.1,所以[version]都要换成0.1
并且还需要设置环境变量JAVA_HOME,可以只在编译用的终端设置
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.15/

要先安装过ant,然后进入解压后的目录,使用如下命令编译:
chenshu@chenshu-desktop:~/work/inotify-java-0.1$ ant release -Dversion=0.1

然后拷贝已经编译出来的动态库到/usr/lib目录中
sudo cp build/native/libinotify-java.so /usr/lib


sudo cp dist/inotify-java-0.1.jar /usr/share/java/

配置NetBeans6.7.1,添加一个inotify库,如下图设置:





环境已经准备好了。

现在新建一个JavaApplication工程inotifyTest,然后将inotify库加入。示例代码如下:

package inotifytest;

import com.den_4.inotify_java.Constants;
import com.den_4.inotify_java.EventQueueFull;
import com.den_4.inotify_java.Inotify;
import com.den_4.inotify_java.InotifyEvent;
import com.den_4.inotify_java.InotifyEventListener;
import com.den_4.inotify_java.InsufficientKernelMemoryException;
import com.den_4.inotify_java.SystemLimitException;
import com.den_4.inotify_java.UserLimitException;


public class Main {


public static void main(String[] args){
try {
Inotify i = new Inotify();
InotifyEventListener e = new InotifyEventListener() {

@Override
public void filesystemEventOccurred(InotifyEvent e) {
System.out.println("inotify event occurred!");
System.out.println("Name:"+e.getName());
System.out.println("Mask:"+Integer.toHexString(e.getMask()));
System.out.println("Mask:"+e.toString());
}

@Override
public void queueFull(EventQueueFull e) {
System.out.println("inotify event queue: " + e.getSource() +
" is full!");
}

};
i.addInotifyEventListener(e);
i.addWatch("/home/chenshu/", Constants.IN_ALL_EVENTS);
} catch (UnsatisfiedLinkError e) {
System.err.println("unsatisfied link error");
} catch (UserLimitException e) {
System.err.println("user limit exception");
} catch (SystemLimitException e) {
System.err.println("system limit exception");
} catch (InsufficientKernelMemoryException e) {
System.err.println("insufficient kernel memory exception");
}
}

}




注意,该程序无法自动结束。关掉NetBeans或者kill的方式可以结束掉。





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics