我有以下问题:
java应用程序必须通过在文件系统中放置文件来触发。我试图避免一种轮询解决方案,即应用程序会定期搜索文件系统,以查明系统中是否有新文件。
是否有任何方法可以通过在文件系统中放置文件来触发应用程序?
Oracle实际上围绕这个主题有一个很好的教程:
https://docs.oracle.com/javase/tutorial/essential/io/notification.html
何时使用和不使用此API
Watch Service API专为需要通知文件更改事件的应用程序而设计。它非常适合任何可能有许多打开文件并且需要确保文件与文件系统同步的应用程序,如编辑器或IDE。它也非常适合于监视目录的应用程序服务器,可能正在等待.jsp或.jar文件被删除,以便部署它们
jnotify或使用新的java文件I/O(NIO.2)包都会轮询内核事件,并通知您任何文件系统更改。这两种解决方案都是内核挂钩,不会占用资源,同时仍能满足您的需求。
结账http://jnotify.sourceforge.net/linux.html对于JNotify或NIO.2了解更多信息