Index: core/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- core/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 17858)
+++ core/src/org/openstreetmap/josm/gui/MainApplication.java	(working copy)
@@ -12,6 +12,7 @@
 import java.awt.Font;
 import java.awt.GraphicsEnvironment;
 import java.awt.GridBagLayout;
+import java.awt.RenderingHints;
 import java.awt.Toolkit;
 import java.io.File;
 import java.io.IOException;
@@ -1163,6 +1164,8 @@
         scaleFonts(Config.getPref().getDouble("gui.scale.list.font", 1.0),
                 "List.font");
         // "Table.font" see org.openstreetmap.josm.gui.util.TableHelper.setFont
+
+        setupTextAntiAliasing();
     }
 
     private static void scaleFonts(double factor, String... fonts) {
@@ -1178,6 +1181,19 @@
         }
     }
 
+    private static void setupTextAntiAliasing() {
+        // On Linux and running on Java 9+, enable text anti aliasing
+        // if not yet enabled and if neither running on Gnome or KDE desktop
+        if (PlatformManager.isPlatformUnixoid()
+                && Utils.getJavaVersion() >= 9
+                && UIManager.getLookAndFeelDefaults().get(RenderingHints.KEY_TEXT_ANTIALIASING) == null
+                && System.getProperty("awt.useSystemAAFontSettings") == null
+                && Toolkit.getDefaultToolkit().getDesktopProperty("gnome.Xft/Antialias") == null
+                && Toolkit.getDefaultToolkit().getDesktopProperty("fontconfig/Antialias") == null) {
+            UIManager.getLookAndFeelDefaults().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
+        }
+    }
+
     static Collection<PluginInformation> updateAndLoadEarlyPlugins(SplashScreen splash, SplashProgressMonitor monitor) {
         Collection<PluginInformation> pluginsToLoad;
         pluginsToLoad = PluginHandler.buildListOfPluginsToLoad(splash, monitor.createSubTaskMonitor(1, false));
