UBuntu9.10开发Java程序拦截inotify文件事件
2012-03-09 00:00
330 查看
从这里获得最新版本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的方式可以结束掉。
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/sheismylife/article/details/4861469
注意,当前版本号是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的方式可以结束掉。
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/sheismylife/article/details/4861469
相关文章推荐
- UBuntu9.10开发Java程序拦截inotify文件事件
- UBuntu9.10开发Java程序拦截inotify文件事件
- UBuntu9.10开发Java程序拦截inotify文件事件
- UBuntu9.10开发Java程序拦截inotify文件事件
- ant 学习(2)-ant开发java程序,buile.xml文件分离
- 用netbeans快速开发java桌面程序(五) 添加事件
- Java开发Web程序中修改类文件和配…
- 【转载】CentsOS系统inotify实时监控服务器文件(夹)定制事件处理程序
- java web开发中property文件java程序解析
- (十三)Core Java GUI(图形化界面小程序开发,事件监听机制流程,以及可运行jar包的配置实现,) (109)
- 解决java程序开发过程中由于生成的bin bin-test classes文件而使得svn提示有未提交的文件
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
- inotify-java linux系统监听文件发生变化,实时通知java程序
- Java开发Web程序中修改类文件和配置文件不重启服务器的方法
- BizTalk开发系列(二) "Hello World" 程序搬运文件
- Java程序转成exe文件的10种方法
- eclipse 开发android 项目的时候系统自动生成的R.Java文件在重新生成时候丢失问题
- 监听获取程序退出事件(Linux、Windows、Java、C++)
- java程序的递归算法,列出某个目录下的所有子目录和文件
- JavaWeb开发知识总结(七)-(struts2_文件上传_Ajax)