Monitor file system events under multiple platforms in your Java app.

Why JxFileWatcher

Simple Integration

Watching All File Events

import com.teamdev.filewatch.FileEvent;
import com.teamdev.filewatch.FileEventsListener;
import com.teamdev.filewatch.FileWatcher;

import java.util.logging.Logger;

 * This example demonstrates how to monitor all file system events in a watching folder.

public class WatchingAllFileEvents {

    public static void main(String[] args) throws Exception {
        final Logger logger = Logger.getLogger(WatchingAllFileEvents.class.getName());

        File tempFile = File.createTempFile("tmp", "tmp");
        File watchingFolder = tempFile.getParentFile();

        FileWatcher watcher = FileWatcher.create(watchingFolder);

        watcher.addFileEventsListener(new FileEventsListener() {
            public void fileAdded(FileEvent.Added e) {

            public void fileDeleted(FileEvent.Deleted e) {

            public void fileChanged(FileEvent.Changed e) {

            public void fileRenamed(FileEvent.Renamed e) {


        System.out.println("File watcher started. Press 'Enter' to terminate applicaiton.");  ;

        System.out.println("File watcher stopped.");


Observing Basic File Operations

Watch for creation, renaming or removal of files and subfolders within any specified folder.

Support for Different File Systems

JxFileWatcher supports different file system types and always uses the best algorithm for monitoring file system events in a specified watching directory.

File Access Monitoring

You will be able to receive notifications about events when access or modification date is changed.

Limit Watching Scope

You can watch for all file events or just for specified by the event and file filters. The files can be watched inside the selected folder only or including all its subfolders.

Watch Properties Change

Be notified about any changes to file size and attributes. These are System, Hidden, Read only and Archived attributes for Windows platforms, and Read, Write and Execute attributes for Linux and Mac systems.

Try the Demo

Run The Demo jxfilewatcherdemo.jnlp

Runs on Windows, Mac OS X & Linux with:

Examples of Apps Our Customers Build

Java applications which need to monitor folders. For example, a media management application that should be notified when user adds a new media file to a watched folder.

Getting Help

Support Resources

Product Forums

You will need a Google ID to be able to post on forums, and you can do that

Note that your message will be automatically posted on the web.

Evaluation Support

Standard Support

Premium Support

Working with people in your own building can be difficult let alone across countries and oceans but nobody comes close to matching your expertise, professionalism, creativity and customer service. Thanks again TeamDev! Sundeep Patel, IORAD
…Your support is genuinely as top notch as your products are. Bruce Mager, Civil Service Superannuation Board

Technical FAQ

A: Yes, you can use it if you include jxfilewatcher-1.4.partial.jar to application classpath instead of jxfilewatcher-1.4.jar.

A: No, JxFileWatcher does not use this approach. It always uses file system notifications to detect the changes.

A: JxFileWatcher reports all file system events to its listeners and number of events greatly depends on the file watcher settings and a watched folder.

A: The fully-qualified name for a class is the package name followed by the class name, separated by a period (.). For example: com.mycompany.myproduct.MyClass

A: This can be any class of your application. The only requirement is that it should be included into your Java application class path.

Licensing and Pricing*

By using our products or any related documentation, you accept the Terms and Conditions of the Product Licence Agreement.

What You Get

  • Perpetual Development Licence
  • Free runtime distribution
  • Free minor version product updates
  • Free major version upgrade within 60 days of purchase date
  • Free technical support pack
  • No obligatory renewal fee
  • 15% discount on other TeamDev products

Per Developer






Source Code


Support Renewal


* Your country's tax fees may apply to licence purchases. They will be charged in addition to the prices specified.
* Prices are subject to change without prior notice from TeamDev. Request an official quote for the purpose of purchase processing.

Get Licences via Resellers

Become a Reseller

Licensing FAQ

A: Our licensing is based on versions of JxFileWatcher. Having purchased the licence for our product you get the right to use the current major version of the product.

A: All minor version updates are free of charge. For example, if you have a licence to library version 1.x, you can receive all updates until the version 2.x is released. You can check the version of your licence in the jxfilewatcher.lic file.

A: Upon purchase of licence you will receive a licence archive. The archive will contain two JARs: development.jar and runtime.jar. Development.jar is the licence that should be used in development process. Runtime.jar should be used to distribute your application to end users. Inside the development.jar you can find the jxfilewatcher.lic file that contains information about your licence.

A: Major version upgrades should be purchased. You can upgrade your licence to a major version with a 25% upgrade discount. The licence upgrade includes renewal of the Standard Support pack.

A: You can distribute unlimited number of copies of your product with our library enclosed. Please use Runtime Licence for distribution of your product.

A: Runtime Licence is provided free of charge.

A: Yes, you can purchase JxFileWatcher Source Code Licence; it is provided on a per developer basis. Please contact our sales team if you are interested in this option.

A: You may want to purchase a Project licence, which is more cost-effective in case there are 3 and more developers on the team.

A: Project licence is bound to a single project you do, but it allows any number of developers in your company to work with our library.

A: When we say “project” we have in mind one product of your company including your future product versions or potential derivative works based on your product.

A: The best solution would be to purchase the Company–wide licence, which covers any number developers and projects in one company.

A: No. The Project licence is tied to one project only.

A: Yes, our licences are tied to a company, not to a specific developer. You can transfer licences to other developers provided that the number of developers, working on your team equals the number of licences purchased.

If you are doing an open source or academic project, you can apply to get a free licence. Please submit a request via Open Source or Academic tab on the evaluation form.


Commercial Open source Academic

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time, so you will need to purchase the licence.

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time. If you are doing an open source project, you can request a permanent licence via the link provided in the email you will receive.

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time. You can request a licence for duration of your academic project via the link provided in the email you will receive.

You should have an existing open source project which has commits and some life period of the project.

We can provide licences only for projects distributed under non-viral licence (LGPL, Apache, etc.). Our library is proprietary and we will not be able to disclose its code.