是否有一个Java的复杂的文件系统监视器,它是免费软件或开源? [关闭] 是否有一个Java的复

2019-05-17 13:01发布

我在寻找一个Java库,可以通知我有关文件系统上的变化。

我发现了一些免费的图书馆,但它们都使用蛮力检测,即轮询定期。 而其他的总是商业。

我正在寻找的是从OS使用文件监控功能库,即FindFirstChangeNotification为Win32, FAM Linux和任何可用的其它OS。 我不介意,如果蛮力是作为后备使用,但对于Windows和Linux,应该利用现有的OS功能。

Answer 1:

JNotify似乎做你所需要的。

轮询文件系统(比如,用于更新时间变化的目录)将不会强加给你的系统上的显著负载,并且不应该被忽视。 如Tomcat等应用使用该管理热部署了一个什么问题。

这不是一个很大的帮助,现在,但即将推出的Java 7的WatchService正是因为这个。



Answer 2:

如果您熟悉Java的的最前沿工作,看看JSR 203:更多新的I / O API的又名NIO2这是在Java 7的推出。

支持对文件属性更改通知批量访问一个新的文件系统接口,逃避特定文件系统的API,并为可插拔文件系统实现一个服务提供者接口;



Answer 3:

jpathwatch是另一种选择。 它实现了Java 7对目录监控API,所以如果需要的话,很容易移植到Java 7中。



Answer 4:

为什么一定要成为Java?

即要使用特定于平台的API必须有本机代码库中,所以基本上库将是围绕本机代码,使透明不同的API的使用包装。

我建议如果你没有找到你的网络的自我,那么你将不得不要么用蛮力你怎么称呼它,或拨打使用JNI每个平台的原生API。



Answer 5:

当前使用轮询两个更多的选择:

  • Apache的骆驼文件组件
  • Spring集成文件守望者

然而,由于这两个项目具有较大的活跃的社区,他们很可能会在未来的更新,以支持Java 7 WatchService( FileSystem.newWatchService() ),它使用底层平台的通知设施(如有)。

这两个库还用于与各种其他传输和系统集成提供一种有用的抽象层,从而在从文件系统接收的输入主应用程序代码是不依赖。



文章来源: Is there a sophisticated file system monitor for Java which is freeware or open source? [closed]