Java 9:java.lang.ClassNotFoundException:Spring Boot应用程序中的java.sql.SQLException

我用Java 9构建了一个Spring Boot应用程序… sourceCompatibility = 9 targetCompatibility = 9 …并使用以下命令启动它: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 

注意:我使用classpath而不是–module-path成功启动了应用程序

编辑:谢谢你的建议! 最后,我找到了一个“魔术组合”来启动应用程序。 我修改了命令行,从lib中删除了javax.transaction-api-1.2.jar并将其放在类路径上以删除模块java.sql和javax.transaction.api之间的包(javax.transaction.xa)拆分冲突

 java --module-path lib --add-modules java.sql,java.instrument,java.xml.bind -cp javax.transaction-api-1.2.jar -m my.app