问题标签 [watchservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2116 浏览

java - 捕获目录内发生的事件

Java 7 nio WatchService我正在使用以下方法观看目录。

但是上述方法只响应目录中发生的一个事件,之后该观察者不响应该文件夹中发生的事件。有没有办法可以修改它以捕获文件夹内发生的所有事件。我还想修改它以捕获子文件夹中发生的事件。有人可以帮我吗。

谢谢你。

0 投票
1 回答
1102 浏览

java - 监视对文件 Java 的更改

我正在尝试开发一个监视服务,每次修改、创建或删除一段代码时,都会执行某个操作。

我已经制作了一个实现 WatchService 的守护程序,它可以获取某个包的路径来观看,例如“../JDV/src/randompackage/java/test/money_scenario”。

这个守护进程有以下代码:

发生的情况如下:我运行守护程序并且它处于活动状态。每当我在money_scenario 包中创建或删除一个类时(它本身有子包,我可以从中删除/创建该类),守护进程会检测到它并打印“已检测到修改”,而不是创建/删除。当我修改 money_scenario 包中的一个类时,它没有检测到任何东西。

我究竟做错了什么?

编辑:已解决,但出现了另一个问题。多个事件:例如,当我删除一个类时,我得到:

在 money_scenario 中检测到修改 在 money_scenario 中检测到删除 在 money_scenario 中检测到修改

0 投票
1 回答
386 浏览

java - JUnit 测试杀死守护进程

我正在创建一个监视给定目录以进行更改的守护程序。当它检测到更改时,它会使用目录中存在的 JUnit 运行所有测试。

它通过调用

TestRunner 是对这段代码的一个小改编:http ://burtbeckwith.com/blog/?p=52 。

它正确地找到并运行所有测试,但是当它完成时,守护程序被终止!我知道 JUnit 会杀死子线程,但为什么守护进程会死掉?我该如何解决?

0 投票
0 回答
80 浏览

java - Singleton WatchServiceHandler 类不打印

我有一个Handler像这样实例化的单例类:

在创建时,它创建了几个包含 WatchService 的类并处理来自该 WatchService 的事件(使用无限循环和 .take())

当我有一个执行此操作的主要方法时:

什么都没有打印!我认为这与监视服务有关。但我认为它会自动在不同的线程中运行。

0 投票
1 回答
294 浏览

java - 管理一个守护线程池

我必须处理一组守护进程,每个守护进程都实现了一个监视服务。我想要做的是,创建守护进程,激活它们,停用和删除。

在创建的那一刻,我这样做是为了激活:

现在这有效,但如果我想停用并删除它们。Deactivate 停止 processevents(与http://docs.oracle.com/javase/tutorial/essential/io/notification.html中的方法相同)并且应该释放线程。删除应该只是破坏守护程序。

我正在考虑使用线程池,但不确定实现和类型。我不想要一个固定的线程池,因为我不知道所需的守护进程的数量。缓存线程池似乎就足够了,但文档告诉我它只适用于“启动许多短期任务的应用程序”,而守护进程可能会运行很长时间。

我将如何最好地安全地管理、激活和停用一组守护程序(监视服务)?

0 投票
1 回答
304 浏览

java - 在 Java 1.7 中通过 WatchService 监视目录更改

从 Java 1.7 开始,有一种方法可以在不添加额外库的情况下查看目录。在 Oracle 网站上,有一个小教程如何使用 WatchService http://docs.oracle.com/javase/tutorial/essential/io/notification.html#try,但我很难理解。没有consitent示例如何使用它。

因此,有人会告诉我如何将侦听器添加到目录并调用方法,例如:f()当文件添加到目录时让我们说:“./folder”?

0 投票
2 回答
1529 浏览

java - 无法停止 ExecutorService

我尝试用 ExecutorService 结束executorService.shutdown();,如果没有用,用executorService.shutdown();. 问题是,无法停止 executorService 并且程序仍在运行。

这是我的课程,它将启动一个 WatchService 来监视目录的更改:

stopWatcher()从 oracle java api] 1得到了方法。我写了一个简单的类来测试 FileWatcher 类。

因此,当我启动测试应用程序以启动 FileWatcher 并在 2 秒后结束它时,程序告诉我:Pool did not terminate. 我可以更改什么以正确终止它?

顺便说一句,ConfigManager 和 FileHandler 是接口,我在其中获得了我必须进行更改的路径。

0 投票
2 回答
2144 浏览

java - Java 7 WatchService -- ENTRY_MODIFY 在文件打开时触发

我有一个程序可以使用WatchService. 我在修改文件时收到事件。但是,我注意到即使我在 vi 中打开一个文件并且不修改其内容,poll也会调用 watch 服务方法。我的代码如下:

在上面的代码中,watcher.poll 等待MAX_WAIT_TIME一个ENTRY_MODIFY事件。但是,当我在被监视的目录中打开一个文件并在不更改其内容的情况下关闭文件时……watcher.poll接收到一个事件并停止等待。是否有一些参数需要设置而我错过了?

0 投票
2 回答
134 浏览

c# - Blocking method which waits for adding file to directory

I would like to know how to make something which will work like that. Since Java 1.7 I could use WatchService but how to do that in C#? I would like to make this method blocking, not a usual event, so it waits forever until new file will come up.

EDIT:

0 投票
0 回答
267 浏览

java - Java7 WatcheService 事件未收到

我确定我在用这个 WatchService 做一些愚蠢的事情,但我无法理解它,所以也许有人可以在这里阐明一下..

我围绕 java 的 watchService 编写了最简单的 scala 包装器,以便通过事件回调:

现在,如果我在一个简单的“主”程序中手动运行它,它会完全按照应有的方式运行:文件创建在同一个循环迭代中给了我一个 ENTRY_CREATE 和 ENTRY_MODIFY 事件(为什么不),然后修改给了我另一个ENTRY_MODIFY,最后一个删除给了我一个ENTRY_DELETE。

到目前为止,一切都很好。

现在我尝试将其包装在 akka 中,以便将事件发送给演员,并且.. 我的 watchService 似乎只是卡在拍摄中并且没有从那里出来!

除了我自己,我没有责怪任何人,但这让我发疯:)

代码非常小,但我没有在此处复制所有内容,而是将代码发布在 github 上(更容易重现): https ://github.com/joune/watcher

有人想在这里帮我一把吗?

PS:我在 Linux 3.11.6-200.fc19.x86_64