I have built a Spring Boot application with Java 9 ... sourceCompatibility = 9 targetCompatibility = 9 ... and started it with: java --module-path lib -m my.app. ...
Caused by: java.lang.NoClassDefFoundError: java/sql/SQLException
at spring.beans@5.0.2.RELEASE/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:161)
at spring.boot@2.0.0.M7/org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:436)
... 5 more
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more
Note: I have launched the application sucessfully using classpath instead of --module-path
Edit: Thank you for your advices! Finally, I have found a "magic mix" to start application. I have modified command line, removed javax.transaction-api-1.2.jar from lib and placed it on classpath to remove package (javax.transaction.xa) splitting conflict between modules java.sql and javax.transaction.api
java --module-path lib --add-modules java.sql,java.instrument,java.xml.bind -cp javax.transaction-api-1.2.jar -m my.app