I'm looking for a Java library which can notify me about changes on the file system.
I found some free libraries, but they all use brute-force detection, i.e. polling in regular intervals. And the other ones are always commercial.
What I'm looking for is a library which uses the file monitor functions from the OS, i.e. FindFirstChangeNotification for Win32, FAM for Linux and whatever is available on other OS. I don't mind if brute-force is used as fallback, but for Windows and Linux it should use the available OS features.
JNotify seems to do what you require.
Polling a filesystem (say, a directory for update time changes) won't impose a significant load on your system, and shouldn't be discounted. Apps like Tomcat etc. use this for managing hot deploys with few problems.
It's not a lot of help now, but the upcoming Java 7 has a WatchService precisely for this.