Spring Boot 3.4.1 documentation says it requires Java 17. However, when I upgraded from 2.7.12, Gradle is reporting Unsupported class file major version 65
Caused by: java.util.concurrent.ExecutionException: org.gradle.api.GradleException: Failed to create Jar file C:\.gradle\caches\jars-9\d8d29f440b7e01c66fd10a390db56541\spring-core-6.2.1.jar.
at org.gradle.internal.UncheckedException.unchecked(UncheckedException.java:74)
... 167 more
Caused by: org.gradle.api.GradleException: Failed to create Jar file C:\TylerDev\.gradle\caches\jars-9\d8d29f440b7e01c66fd10a390db56541\spring-core-6.2.1.jar.
at org.gradle.internal.classpath.ClasspathBuilder.jar(ClasspathBuilder.java:55)
at org.gradle.internal.classpath.InstrumentingClasspathFileTransformer.instrument(InstrumentingClasspathFileTransformer.java:137)
at org.gradle.internal.classpath.InstrumentingClasspathFileTransformer.transform(InstrumentingClasspathFileTransformer.java:132)
at org.gradle.internal.classpath.InstrumentingClasspathFileTransformer.transform(InstrumentingClasspathFileTransformer.java:96)
at org.gradle.internal.classpath.DefaultCachedClasspathTransformer.transformFile(DefaultCachedClasspathTransformer.java:193)
at org.gradle.internal.classpath.DefaultCachedClasspathTransformer.lambda$cachedFile$6(DefaultCachedClasspathTransformer.java:186)
at org.gradle.internal.UncheckedException.unchecked(UncheckedException.java:74)
at org.gradle.internal.classpath.DefaultCachedClasspathTransformer.lambda$transformAll$9(DefaultCachedClasspathTransformer.java:233)
... 2 more
Caused by: java.io.IOException: Failed to process the entry 'META-INF/versions/21/org/springframework/core/task/VirtualThreadDelegate.class' from 'C:\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.2.1\f42e6b51d9c0c2fcf95df9e5848470d173adc9af\spring-core-6.2.1.jar'
at org.gradle.internal.classpath.InstrumentingClasspathFileTransformer.lambda$visitEntries$1(InstrumentingClasspathFileTransformer.java:161)
at org.gradle.internal.classpath.ClasspathWalker.visitJarContents(ClasspathWalker.java:91)
at org.gradle.internal.classpath.ClasspathWalker.visit(ClasspathWalker.java:55)
at org.gradle.internal.classpath.InstrumentingClasspathFileTransformer.visitEntries(InstrumentingClasspathFileTransformer.java:148)
at org.gradle.internal.classpath.InstrumentingClasspathFileTransformer.lambda$instrument$0(InstrumentingClasspathFileTransformer.java:139)
at org.gradle.internal.classpath.ClasspathBuilder.buildJar(ClasspathBuilder.java:66)
at org.gradle.internal.classpath.ClasspathBuilder.jar(ClasspathBuilder.java:53)
... 9 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:199)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:180)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:166)
at org.gradle.internal.classpath.InstrumentingClasspathFileTransformer.lambda$visitEntries$1(InstrumentingClasspathFileTransformer.java:151)
... 15 more
Comment From: bclozel
Spring Framework is publishing a multi-release JAR to ship Java 21 virtual thread support. This is not a Spring Framework issue, but a Gradle issue that has been fixed already. Please upgrade your Gradle version.
Comment From: myronu
For some reason, it works with Spring Boot 3.3.7, but not 3.4.1, so I will use that until we can upgrade gradle
Comment From: bclozel
Spring Boot 3.4 requires Gradle 7.6.4+ or 8.3+; this might explain the behavior you're seeing.