是否有一个复杂的Java文件系统监视器是免费的还是开源的?

是否有一个复杂的Java文件系统监视器是免费的还是开源的?,java,file-monitoring,Java,File Monitoring,我正在寻找一个Java库,它可以通知我文件系统的更改 我发现了一些免费的库,但它们都使用暴力检测,即定期轮询。其他的都是商业性的 我要找的是一个库,它使用操作系统中的文件监视器功能,即。 对于Win32、Linux和其他操作系统上可用的任何东西。我不介意使用暴力作为后备,但对于Windows和Linux,它应该使用可用的操作系统功能。为什么必须使用Java 将要使用特定于平台的API的库必须具有本机代码,因此从本质上说,该库将是围绕本机代码的包装器,从而使不同API的使用透明化 我建议,如果你自

我正在寻找一个Java库,它可以通知我文件系统的更改

我发现了一些免费的库,但它们都使用暴力检测,即定期轮询。其他的都是商业性的

我要找的是一个库,它使用操作系统中的文件监视器功能,即。
对于Win32、Linux和其他操作系统上可用的任何东西。我不介意使用暴力作为后备,但对于Windows和Linux,它应该使用可用的操作系统功能。

为什么必须使用Java

将要使用特定于平台的API的库必须具有本机代码,因此从本质上说,该库将是围绕本机代码的包装器,从而使不同API的使用透明化

我建议,如果你自己找不到这个库,那么你要么使用你所说的蛮力,要么使用JNI为每个平台调用本机API。

似乎满足了你的要求

轮询文件系统(例如,更新时更改的目录)不会给系统带来很大的负载,也不应该被忽略。像Tomcat等应用程序使用它来管理热部署,几乎没有问题


现在没有太多的帮助,但即将推出的Java 7对此有一个明确的定义。

如果您对Java的前沿感到满意,请看一看《Java 7中即将推出的aka nio2

一个新的文件系统接口 支持对文件的批量访问 属性,更改通知, 转义到特定于文件系统的API, 以及一个用于 可插入文件系统实现

这是另一种选择。它实现了用于目录监视的Java7的API,因此如果需要,可以很容易地移植到Java7

另外两个当前使用轮询的选项:

但是,由于这两个项目都有大型活动社区,因此将来可能会对它们进行更新,以支持Java 7 WatchService(),它确实使用底层平台的通知功能(如果有的话)


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

是的,这就是这样一个库的本质,即包装器。但我希望这样的事情已经存在。(它存在,但不是免费/开源的)一条解释否决票的评论会很有帮助……这个问题似乎离题了,因为这是一个编程网站。请参见帮助中心中的。也许会是一个更好的提问的地方。