`

监控文件夹状态的JAVA插件

阅读更多
JNotify,一个支持动态监控文件和文件夹(支持级联监控)的架包。在linux系统中,调用的是linux底层的inotify服务,只是添加了对子文件夹级联监控的功能。在windows中,需要添加附件的dll文件,因为windows默认没有该服务,这是大拿们自己开发的一个功能。

使用很简单,以我的ubuntu系统为例:
1,将jnotify包引入到工程中。
2,将jnotify依赖的so文件加入到java.library.path路径中。这个变量可能会有多个位置,随便将jnotify压缩包中附带的libjnotify.so文件加入到其中的任何一个路径中即可。如果不知道这个变量的值,可以使用System.getProperty("java.library.path")查看。当然,如果不想这么麻烦,可以在启动程序时指定JVM的参数


Java代码 
1.-Djava.library.path=你的位置 
,这样和上面将so文件加入系统路径中是一样的效果。

然后,写个测试类就可以看见效果了。
我这里没有自己写,只是简单的拷贝了一下JNotify官网的测试代码。



Java代码 
1.
public class JnotifyTest {  
2.    public static void main(String[] args) {  
3.        try {  
4.            new JnotifyTest().sample();  
5.        } catch (Exception e) {  
6.            e.printStackTrace();  
7.        }  
8.        // System.out.println(System.getProperty("java.library.path"));  
9.    }  
10.  
11.    public void sample() throws Exception {  
12.        // path to watch  
13.        String path = System.getProperty("user.home");  
14.  
15.        // watch mask, specify events you care about,  
16.        // or JNotify.FILE_ANY for all events.  
17.        int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED  
18.                | JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED;  
19.  
20.        // watch subtree?  
21.        boolean watchSubtree = true;  
22.  
23.        // add actual watch  
24.        int watchID = JNotify  
25.                .addWatch(path, mask, watchSubtree, new Listener());  
26.  
27.        // sleep a little, the application will exit if you  
28.        // don't (watching is asynchronous), depending on your  
29.        // application, this may not be required  
30.        Thread.sleep(1000000);  
31.  
32.        // to remove watch the watch  
33.        boolean res = JNotify.removeWatch(watchID);  
34.        if (!res) {  
35.            // invalid watch ID specified.  
36.        }  
37.    }  
38.  

39.        //可以在下面的监控方法中添加自己的代码。比如在fileModified中添加重新加载配置文件的代码 
40.   
class Listener implements JNotifyListener {  
41.        public void fileRenamed(int wd, String rootPath, String oldName,  
42.                String newName) {  
43.            print("renamed " + rootPath + " : " + oldName + " -> " + newName);  
44.        }  
45.  
46.        public void fileModified(int wd, String rootPath, String name) {  
47.            print("modified " + rootPath + " : " + name);  
48.        }  
49.  
50.        public void fileDeleted(int wd, String rootPath, String name) {  
51.            print("deleted " + rootPath + " : " + name);  
52.        }  
53.  
54.        public void fileCreated(int wd, String rootPath, String name) {  
55.            print("created " + rootPath + " : " + name);  
56.        }  
57.  
58.        void print(String msg) {  
59.            System.err.println(msg);  
60.        }  
61.  
62.    }  
63.}  


在实际的使用过程中,如果是web工程,我的习惯是添加一个listener监听器,当监听器初始化时,添加对指定文件或文件夹的监控。这样我们就不必为每次修改了配置文件都需要重启工程而苦恼了。如果是Java工程,就是需要的地方添加监控吧。



转自:http://lichuanbao.iteye.com/blog/1532951
分享到:
评论

相关推荐

    目录监控 监控文件夹

    4. 集成解决方案:使用专门的监控软件,如Nagios、Zabbix等,它们通常提供插件或配置选项来监控文件夹。 五、监控文件夹的注意事项 1. 安全性:确保监控不会侵犯用户隐私,只对必要的目录进行监控。 2. 性能影响:...

    java实现文件监控小工具

    java 代码仅供参考学习! java实现文件监控小工具 ...用于代码审计时监控文件夹内文件的变动,支持Mac,Windows,Linux。 第一次运行时请根据提示在此页面下载对应动态依赖库放到指定位置即可(注意版本!)。

    showtime的eclipse插件

    Showtime插件就是其中的一个实例,它扩展了Eclipse的功能,使其具备JVM性能监控的能力。 2. **Showtime 功能**:该插件主要提供实时的JVM内存使用情况、垃圾收集状态、线程活动、类加载信息等关键指标的可视化展示...

    eclipse的weblogic插件

    6. **日志查看**:插件还提供了查看WebLogic Server日志的功能,便于实时监控应用状态。 7. **热部署**:允许你在不重启服务器的情况下更新应用程序,提高了开发效率。 8. **性能监视**:可以查看服务器的CPU使用...

    支付宝微信监控收款支付源码即时到账通知

    在“ServerPay”这个文件夹中,可能包含了实现以上功能的服务器端代码和相关配置文件。这些代码可能涵盖了接收和验证支付平台的请求、处理交易状态、发送通知等功能模块。为了确保系统的稳定性和安全性,开发者需要...

    ActionHealth是一个高度可配置的Minecraft插件,它利用操作栏显示实体健康状况 -Java-下载

    这款插件基于Java编程语言开发,使得开发者和玩家可以更方便地监控游戏内的状态,提升游戏体验。 在Minecraft中,通常情况下,玩家需要靠近实体才能查看其生命值,这在某些情况下可能不那么便捷。ActionHealth的...

    jmeter性能监控插件说明

    ### jmeter性能监控插件说明 #### Apache JMeter概述 Apache JMeter是一款开源的压力测试工具,由Apache组织开发,主要用于评估软件系统的性能表现。起初它主要针对Web应用进行测试,随着时间的发展,其功能逐渐...

    新建文件夹_hadoopeclipse_

    使用Eclipse的插件,可以方便地编写Java代码实现Map和Reduce函数。同时,插件会自动生成必要的配置文件,如`job.xml`,用于指定输入和输出路径、Mapper和Reducer类等。 6. **运行和调试MapReduce作业** - **运行...

    jmter监控插件

    这些库可能包括Java类库或者其他必要的软件组件,它们为插件提供了实现特定功能所需的支持。 在使用JMeter监控插件时,测试人员可以设置各种参数来定制监控范围和级别,比如监控服务器的CPU使用率、内存消耗、网络...

    visualVM 插件中心Visual GC插件nbm文件类型

    VisualVM是一款强大的Java应用程序性能分析工具,由Oracle公司开发并提供,它允许开发者对Java应用程序进行内存分析、线程诊断、CPU使用率监控等多方面的性能评估。在VisualVM中,插件系统是其功能扩展的重要组成...

    Eclispe tomcat插件

    10. **性能监控**:通过插件,用户还可以对Tomcat服务器进行简单的性能监控,查看服务器负载,内存使用情况等。 总结来说,Eclipse Tomcat插件是Java EE开发者不可或缺的工具之一,它极大地提升了开发、测试和调试...

    java钩子实现源码

    反射是Java语言的一个重要特性,它允许运行状态中的Java程序对自身进行检查并且可以直接操作程序的内部属性。Java.lang.reflect包提供了类、接口和构造器的反射类,例如Class、Method和Constructor。 Java钩子的...

    tomcat插件,放到plugins下直接用

    对于调试阶段,插件支持设置断点,查看线程堆栈,以及监控服务器状态,这些都是进行高效问题排查的关键工具。 在实际开发过程中,有时我们需要在多个Tomcat实例间切换,例如,可能需要同时运行开发、测试和生产环境...

    ObjectManagerEnterprise-Java-7.4.0.zip_AD71

    最后,plugins文件夹则是插件的主体,包含了实现这些功能的Java代码和其他资源。 在实际使用中,开发人员可以利用ObjectManagerEnterprise插件进行以下操作: 1. 数据浏览:查看db4o数据库中的对象和它们的属性。 2...

    toamcat插件--Eclipse插件-TomcatPlugin下载tomca

    此外,它还可能提供其他实用功能,如查看日志、监控服务器状态等。 【标签】:“tomcat” “tomcat”标签明确了主题,即Apache Tomcat服务器,这是一款轻量级的Java应用服务器,特别适合小型到中型的Web应用。它...

    天猫淘宝秒杀抢购插件

    这类插件通常包含一系列高级功能,例如自动填写购物车信息、监控库存变化、自动点击抢购按钮等,从而在短时间内完成下单流程。 首先,我们来了解下插件的基本结构和工作原理。浏览器插件是由HTML、CSS和JavaScript...

    windows内部文件夹介绍.pdf

    - **java**:Java运行环境及程序文件。 - **Web**:包含桌面壁纸的文件夹。 - **addins**:系统附加功能文件。 - **ConnectionWizard**:互联网连接向导相关文件。 - **DriverCache**:硬件驱动缓存。 - **...

    activiti5.16.4 ,myeclipse插件

    总之,Activiti 5.16.4插件为MyEclipse带来了强大的业务流程管理能力,让开发人员可以在熟悉的环境中实现流程的全生命周期管理,从设计到部署,再到监控,大大提高了开发效率和流程的可控性。通过直接将插件文件放入...

    openfire插件开发人员指南

    这通常包括菜单项、页面和面板,允许管理员进行配置或监控插件的状态。 5. **开发流程**: 开发Openfire插件通常涉及以下步骤: - 设计插件的功能和接口。 - 编写Java代码实现插件逻辑。 - 创建必要的资源文件...

    visualvm离线插件包

    通过一个直观的图形用户界面,开发者可以实时监控应用程序的性能,查看线程状态,分析内存泄漏,以及收集各种性能数据。 2. **离线插件包**: 这个离线插件包允许用户在没有网络连接的情况下为VisualVM安装额外的...

Global site tag (gtag.js) - Google Analytics