Index: src/org/openstreetmap/josm/plugins/javafx/JavaFxPlugin.java
===================================================================
--- src/org/openstreetmap/josm/plugins/javafx/JavaFxPlugin.java	(revision 35359)
+++ src/org/openstreetmap/josm/plugins/javafx/JavaFxPlugin.java	(working copy)
@@ -1,5 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.javafx;
+import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.io.File;
 import java.io.IOException;
@@ -14,6 +15,7 @@
 import java.nio.file.StandardCopyOption;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.security.CodeSource;
+import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Objects;
@@ -20,6 +22,8 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
+import javax.swing.UnsupportedLookAndFeelException;
+
 import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.io.audio.AudioPlayer;
 import org.openstreetmap.josm.plugins.DynamicURLClassLoader;
@@ -27,23 +31,34 @@
 import org.openstreetmap.josm.plugins.PluginInformation;
 import org.openstreetmap.josm.plugins.javafx.io.audio.JavaFxMediaPlayer;
 import org.openstreetmap.josm.tools.Logging;
+import org.openstreetmap.josm.tools.Utils;
 
+
 /**
  * OpenJFX plugin brings OpenJFX (JavaFX) to other plugins.
  */
 abstract class JavaFxPlugin extends Plugin {
 
+    Exception e;
     /**
      * Constructs a new {@code OpenJfxPlugin}.
      * @param info plugin info
      * @param ext native libraries extension
      * @param orderedNativeLibraries native librarires that must be loaded in this order
+     * @throws UnsupportedLookAndFeelException if JavaFX is not available (< Java 10)
      */
-    protected JavaFxPlugin(PluginInformation info, String ext, List<String> orderedNativeLibraries) {
+    protected JavaFxPlugin(PluginInformation info, String ext, List<String> orderedNativeLibraries) throws UnsupportedLookAndFeelException {
         super(info);
-        AudioPlayer.setSoundPlayerClass(JavaFxMediaPlayer.class);
-        extractNativeLibs(ext);
-        loadNativeLibs(ext, orderedNativeLibraries);
+        boolean isJavaFx = Utils.getSystemProperty("javafx.runtime.version") != null || Arrays.asList("Oracle Corporation").contains(Utils.getSystemProperty("java.vendor"));
+        if (isJavaFx || Utils.getJavaVersion() >= 10) {
+            AudioPlayer.setSoundPlayerClass(JavaFxMediaPlayer.class);
+        }
+        if (!isJavaFx && Utils.getJavaVersion() >= 10) {
+            extractNativeLibs(ext);
+            loadNativeLibs(ext, orderedNativeLibraries);
+        } else if (!isJavaFx) {
+            throw new UnsupportedLookAndFeelException(tr("JavaFX is not available"));
+        }
     }
 
     private static void extractNativeLibs(String ext) {
Index: src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginOsx.java
===================================================================
--- src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginOsx.java	(revision 35359)
+++ src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginOsx.java	(working copy)
@@ -3,6 +3,8 @@
 
 import java.util.Arrays;
 
+import javax.swing.UnsupportedLookAndFeelException;
+
 import org.openstreetmap.josm.plugins.PluginInformation;
 
 /**
@@ -13,8 +15,9 @@
     /**
      * Constructs a new {@code JavaFxPluginOsx}.
      * @param info plugin info
+     * @throws UnsupportedLookAndFeelException if JavaFX is not available (< Java 10)
      */
-    public JavaFxPluginOsx(PluginInformation info) {
+    public JavaFxPluginOsx(PluginInformation info) throws UnsupportedLookAndFeelException {
         super(info, ".dylib", Arrays.asList());
     }
 }
Index: src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginUnixoid.java
===================================================================
--- src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginUnixoid.java	(revision 35359)
+++ src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginUnixoid.java	(working copy)
@@ -3,6 +3,8 @@
 
 import java.util.Arrays;
 
+import javax.swing.UnsupportedLookAndFeelException;
+
 import org.openstreetmap.josm.plugins.PluginInformation;
 
 /**
@@ -13,8 +15,9 @@
     /**
      * Constructs a new {@code JavaFxPluginUnixoid}.
      * @param info plugin info
+     * @throws UnsupportedLookAndFeelException if JavaFX is not available (< Java 10)
      */
-    public JavaFxPluginUnixoid(PluginInformation info) {
+    public JavaFxPluginUnixoid(PluginInformation info) throws UnsupportedLookAndFeelException {
         super(info, ".so", Arrays.asList());
     }
 }
Index: src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginWindows.java
===================================================================
--- src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginWindows.java	(revision 35359)
+++ src/org/openstreetmap/josm/plugins/javafx/JavaFxPluginWindows.java	(working copy)
@@ -3,6 +3,8 @@
 
 import java.util.Arrays;
 
+import javax.swing.UnsupportedLookAndFeelException;
+
 import org.openstreetmap.josm.plugins.PluginInformation;
 
 /**
@@ -13,8 +15,9 @@
     /**
      * Constructs a new {@code JavaFxPluginWindows}.
      * @param info plugin info
+     * @throws UnsupportedLookAndFeelException if JavaFX is not available (< Java 10)
      */
-    public JavaFxPluginWindows(PluginInformation info) {
+    public JavaFxPluginWindows(PluginInformation info) throws UnsupportedLookAndFeelException {
         super(info, ".dll", Arrays.asList("fxplugins.dll"));
     }
 }
