Index: /trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/Main.java	(revision 14127)
+++ /trunk/src/org/openstreetmap/josm/Main.java	(revision 14128)
@@ -77,6 +77,8 @@
     /**
      * The file watcher service.
-     */
-    public static final FileWatcher fileWatcher = new FileWatcher();
+     * @deprecated Use {@link FileWatcher#getDefaultInstance}
+     */
+    @Deprecated
+    public static final FileWatcher fileWatcher = FileWatcher.getDefaultInstance();
 
     /**
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 14127)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 14128)
@@ -29,5 +29,4 @@
 import java.util.regex.Pattern;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.ChangePropertyKeyCommand;
@@ -62,4 +61,5 @@
 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.TokenMgrError;
 import org.openstreetmap.josm.io.CachedFile;
+import org.openstreetmap.josm.io.FileWatcher;
 import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.io.UTFInputStreamReader;
@@ -762,5 +762,5 @@
                 addMapCSS(i);
                 if (Config.getPref().getBoolean("validator.auto_reload_local_rules", true) && source.isLocal()) {
-                    Main.fileWatcher.registerSource(source);
+                    FileWatcher.getDefaultInstance().registerSource(source);
                 }
             } catch (IOException | IllegalStateException | IllegalArgumentException ex) {
Index: /trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 14127)
+++ /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 14128)
@@ -410,5 +410,5 @@
     protected List<InitializationTask> beforeInitializationTasks() {
         return Arrays.asList(
-            new InitializationTask(tr("Starting file watcher"), fileWatcher::start),
+            new InitializationTask(tr("Starting file watcher"), FileWatcher.getDefaultInstance()::start),
             new InitializationTask(tr("Executing platform startup hook"), () -> platform.startupHook(MainApplication::askUpdateJava)),
             new InitializationTask(tr("Building main menu"), this::initializeMainWindow),
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 14127)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 14128)
@@ -15,5 +15,4 @@
 import javax.swing.SwingUtilities;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -27,4 +26,5 @@
 import org.openstreetmap.josm.gui.mappaint.styleelement.StyleElement;
 import org.openstreetmap.josm.io.CachedFile;
+import org.openstreetmap.josm.io.FileWatcher;
 import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -327,5 +327,5 @@
         if (Config.getPref().getBoolean("mappaint.auto_reload_local_styles", true) && source.isLocal()) {
             try {
-                Main.fileWatcher.registerSource(source);
+                FileWatcher.getDefaultInstance().registerSource(source);
             } catch (IOException | IllegalStateException | IllegalArgumentException e) {
                 Logging.error(e);
Index: /trunk/src/org/openstreetmap/josm/io/FileWatcher.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/FileWatcher.java	(revision 14127)
+++ /trunk/src/org/openstreetmap/josm/io/FileWatcher.java	(revision 14128)
@@ -34,4 +34,17 @@
     private static final Map<SourceType, Consumer<SourceEntry>> loaderMap = new EnumMap<>(SourceType.class);
     private final Map<Path, SourceEntry> sourceMap = new HashMap<>();
+
+    private static class InstanceHolder {
+        static final FileWatcher INSTANCE = new FileWatcher();
+    }
+
+    /**
+     * Returns the default instance.
+     * @return the default instance
+     * @since 14128
+     */
+    public static FileWatcher getDefaultInstance() {
+        return InstanceHolder.INSTANCE;
+    }
 
     /**
