Cannot load configuration class: com.xxx.NacosConfigApplication 无法启动成功
- 表象
- 错误的日志信息
- 解决方案
- 结言
表象
最简单的Spring Boot maven 配置 + properties配置 + 启动类,但是,就是无法启动成功。
错误的日志信息
java.lang.IllegalStateException: Cannot load configuration class: com.alibaba.nacos.example.spring.boot.NacosConfigApplicationCaused by: org.springframework.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @1725dc0fUnable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @1725dc0f
解决方案
确定使用的springBoot版本 和 jdk版本,若是不匹配就会导致这样的异常保持; 恶心的是,基本上从错误信息上,看不出来是因为版本不匹配的问题导致的
- Spring Boot3.0.x, 才开始JDK17
- Spring Boot 2.0.x,才开始支持JDK8
结言
如果出现一个问题,无法理清楚的时候,找一个最基础的问题环境,不断猜测各个可能性。