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
結言
如果出現一個問題,無法理清楚的時候,找一個最基礎的問題環境,不斷猜測各個可能性。