我正在使用 java 21、gradle 和 spring boot 3.2.4 构建一个项目,并且仅在测试(类)阶段我得到:
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
或Caused by: java.io.IOException: Error while instrumenting sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo.
或Caused by: java.io.IOException: Error while instrumenting sun/util/resources/provider/LocaleDataProvider.
,而对于构建阶段一切都很好。怎么可能?
在 gradle (版本 8.7)中我设置如下:
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
toolchain {languageVersion = JavaLanguageVersion.of(21)}
}
出了什么问题?
此类问题只有当jdk-版本与spring版本不兼容时才会出现,你可以彻底检查jdk的版本,你的程序正在挑选,确保它在jdk-17到jdk 22之间