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

注意,当前版本号是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的方式可以结束掉。

—————————————————————————————————

本文原创自Sliencecsdn技术博客。

本博客所有原创文章请以链接形式注明出处。

欢迎关注本技术博客,本博客的文章会不定期更新。


大多数人想要改造这个世界,但却罕有人想改造自己。

世上没有绝望的处境,只有对处境绝望的人。

                                              ————By slience

—————————————————————————————————


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值