Hi, the Lucene team installed JDK9 build 118 today and this failed our build during some checks. The reason is that some classes are missing from the unnamed module (standard Java 8 classpath-only application). Just try this test:
public class Test { public static void main(String... args) throws Exception { Class.forName("javax.xml.bind.DatatypeConverter"); } } $ javac Test.java $ java Test Exception in thread "main" java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@9-ea/BuiltinClassLoader.java:366) at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@9-ea/ClassLoaders.java:184) at java.lang.ClassLoader.loadClass(java.base@9-ea/ClassLoader.java:419) at java.lang.Class.forName0(java.base@9-ea/Native Method) at java.lang.Class.forName(java.base@9-ea/Class.java:294) at Test.main(Test.java:3) $ java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+118) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+118, mixed mode) This works with build 116 and Java 8. This is not the only class that’s missing at runtime, there are more: I do not have the complete list, but our checks using the forbiddenapis Ant/Maven/Gradle plugin fails to load classes around JAXB/XML (javax.xml.bind.*, javax.jws.*) and CORBA (org.omg.CORBA.*), but also "javax.activation.ActivationDataFlavor". But there may be more packages missing. It looks like some module exports are missing because the classes are all listed on the JDK docs: http://download.java.net/java/jdk9/118/docs/api/index.html I'd suggest to add a check in the packaging that validates that all classes also visible in the Javadocs are visible at runtime from applications not using the module system. Should I open bug report or can we shortcut this through the mailing list? Greetings from the Lucene team, Uwe ----- Uwe Schindler uschind...@apache.org ASF Member, Apache Lucene PMC / Committer Bremen, Germany http://lucene.apache.org/