Index: trunk/build.xml
===================================================================
--- trunk/build.xml	(revision 12237)
+++ trunk/build.xml	(revision 12238)
@@ -144,5 +144,5 @@
                 <attribute name="Application-Name" value="JOSM - Java OpenStreetMap Editor"/>
                 <!-- Java 9 stuff. Entries are safely ignored by Java 8 -->
-                <attribute name="Add-Exports" value="java.base/sun.security.util java.base/sun.security.x509" />
+                <attribute name="Add-Exports" value="java.base/sun.security.util java.base/sun.security.x509 jdk.deploy/com.sun.deploy.config" />
                 <attribute name="Add-Opens" value="java.desktop/javax.swing.text.html java.prefs/java.util.prefs" />
             </manifest>
@@ -444,4 +444,6 @@
                     <jvmarg value="--add-exports" if:set="isJava9" />
                     <jvmarg value="java.base/sun.security.x509=ALL-UNNAMED" if:set="isJava9" />
+                    <jvmarg value="--add-exports" if:set="isJava9" />
+                    <jvmarg value="jdk.deploy/com.sun.deploy.config=ALL-UNNAMED" if:set="isJava9" />
                     <jvmarg value="--add-opens" if:set="isJava9" />
                     <jvmarg value="java.base/java.io=ALL-UNNAMED" if:set="isJava9" />
Index: trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 12237)
+++ trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 12238)
@@ -1657,5 +1657,13 @@
     public static Date getJavaExpirationDate() {
         try {
-            Object value = Class.forName("com.sun.deploy.config.BuiltInProperties").getDeclaredField("JRE_EXPIRATION_DATE").get(null);
+            Object value = null;
+            Class<?> c = Class.forName("com.sun.deploy.config.BuiltInProperties");
+            try {
+                value = c.getDeclaredField("JRE_EXPIRATION_DATE").get(null);
+            } catch (NoSuchFieldException e) {
+                // Field is gone with Java 9, there's a method instead
+                Main.trace(e);
+                value = c.getDeclaredMethod("getProperty", String.class).invoke(null, "JRE_EXPIRATION_DATE");
+            }
             if (value instanceof String) {
                 return DateFormat.getDateInstance(3, Locale.US).parse((String) value);
