如何修复 IntelliJ IDEA 中的“不受支持的类文件主要版本 60”?

2022-08-31 08:14:10

我在 Ubuntu 中有一个 Gradle 项目。它是用Java 14编写的。我安装了Java 14 JDK。当我从命令行构建它时,一切都有效,但没有人愿意使用命令行!当我在IntelliJ IDEA中打开它时,它会抛出一个错误:

* Where:
Initialization script '/tmp/ijmapper.gradle`

* What went wrong:
Could not compile initialization script '/tmp/ijmapper.gradle`.
> Startup failed:
General error during semantic analysis: Unsupported class file major version 60.

然后是一个冗长而无用的堆栈跟踪,它说明了很多关于Groovy的信息。(该项目不是Groovy项目;它是一个Java项目。

主要版本 60 指的是 Java 16,而此项目未使用 Java 16。我已经进入了项目结构,并确保它设置为使用JDK版本14。但是“ijmapper”这个名字表明这与IntelliJ有关,这可能是一个IDE问题,而不是项目问题。

映射器文件简单地说:

if(!ext.has('mapPath')) ext.mapPath = { path -> path}

换句话说,一个简单的polyfill。

这是怎么回事,我该如何解决?


答案 1

TL;DR;您需要拥有与您的版本兼容的版本,并将Gradle配置为完全使用该版本(不是较旧的Java,甚至不是较新版本)。JavaGradle


我通过更改IntelliJ设置中的Gradle JVM设置来解决此问题:

  • “设置/首选项”对话框中,转到“构建”、“执行”、“部署构建工具”Gradle

  • Gradle 部分下,更改 Gradle JVM 选项。选择适合您的 Gradle JVM

    Enter image description here

请参阅解决现有项目的 Gradle JVM 版本问题


答案 2

对我来说,这是通过升级Gradle版本修复的。

在目录下的文件中,只需更改Gradle的版本号即可。例如,如果您的 Gradle 版本是 ,请更改以下内容:gradle/wrapper/gradle-wrapper.properties6.3

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip

自:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip

它在我正在处理的项目的文件项目结构项目中不可用。