Spring Initializr 项目导致不支持的类文件主版本号为64。

19
当我使用Spring initializr创建新项目时,Gradle无法构建该项目。我使用的是IntelliJ IDEA。
错误信息为:
* Exception is:
org.gradle.cache.CacheOpenException: Could not open init generic class cache for initialization script '/tmp/ijmapper.gradle' (/home/julius/.gradle/caches/7.6.1/scripts/dnnmnny7cynyzgkf00s30jlld).
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:91)
    ... 166+ more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 64

我使用这个表格查询了一下,它是Java 20。问题在于,我没有选择Java-20,而是选择了Java-17。更糟糕的是,我目前无法在我的Linux机器上安装Java-20。

4个回答

42
我找到了问题所在: 我的Gradle设置试图使用Java 20。 我通过点击Gradle->小齿轮->Gradle设置,并将Gradle JVM设置为17解决了这个问题。

9

我知道我有点晚来到这个线程。然而,我刚刚遇到了这个问题,并发现更新gradle-wrapper.jar可以解决此问题。我通过在我的项目目录中运行./gradlew wrapper --gradle-version=8.1.1 --distribution-type=bin来完成此操作。

来源: https://gradle.org/install/#helpful-information


1
gradlew 对我来说失败了,我认为这是因为 gradlew 已经损坏了,所以你不能在第一次运行时运行它。用我的 homebrew 安装的 gradle 替换 gradlew 解决了这个问题。 - Kassian Sun
哦,是的,对不起。我正在使用IntelliJ。 - RaymondNoodle
哦,是的,我道歉。我正在使用IntelliJ。 - RaymondNoodle
哦,是的,我道歉。我正在使用IntelliJ。 - undefined
在我的情况下非常有帮助。 - Farkhod Abdukodirov

4

1

我假设你正在使用某种IDE,比如Eclipse或IntelliJ等。IDE的工作方式是它是一个隔离的生态系统,已经预定义了JDK/JRE。

我知道当你安装新的Eclipse并且如果你

  1. 右键单击项目

  2. 属性

  3. Java Build Path

  4. 库选项卡

  5. 点击JRE System Library

  6. 点击编辑

  7. 已安装的JRE

在那个窗口中,Eclipse将默认设置最新的JDK,这与您在系统上安装的JDK无关。 例如,如果您下载了最新的Eclipse,它将具有最新的JDK设置,这是Eclipse的一部分,需要删除该值,并明确设置您要使用的JDK,例如17。 同样适用于IDE编译器版本,您还需要检查它是否具有正确的值,例如在您的示例中为17。

Eclipse有已安装的JRE和Java编译器,IntelliJ有SDK和Java编译器。

关于IntelliJ的JDK位置

  1. 文件 > 设置 > 构建 > 编译器 > Java编译器

  2. 文件 > 项目设置 > SDK和语言级别应为17

  3. 文件 > 项目设置 > 模块 > 依赖项选项卡应该在顶部有17

  4. 文件 > 项目设置 > 模块 > 源选项卡应该在顶部有17 -

还请注意,您还需要确保在pom/gradle文件中也有JDK17。


我使用 IntelliJ IDEA。SDK 被设置为 17.0.6。 - Julius Babies
还有,文件 > 项目设置 > SDK 和语言级别应该是 17。 - zawarudo
同时,文件 > 项目设置 > 模块 > 依赖项选项卡应该在顶部有17。 - zawarudo
同样,文件 > 项目设置 > 模块 > 源选项卡应该在顶部有17。 - zawarudo
1
好的,我们把它修复了,干得好! - zawarudo
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接