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

Mas*_*ler 46 java ubuntu groovy intellij-idea

我在 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.
Run Code Online (Sandbox Code Playgroud)

紧随其后的是一段长而无用的堆栈跟踪,其中说了很多关于 Groovy 的信息。(该项目不是 Groovy 项目;它是一个 Java 项目。)

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

映射器文件只是说:

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

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

有谁知道这里发生了什么以及如何解决它?我已经浪费了一天的时间来尝试让它发挥作用,我快到这里了!

小智 34

我通过更改 IntelliJ 设置中的 Gradle JVM 设置解决了这个问题:

  • 设置/首选项对话框中,转到构建、执行、部署 | 构建工具 | 摇篮

  • Gradle部分下,更改Gradle JVM选项。

https://www.jetbrains.com/help/idea/gradle-jvm-selection.html#jvm_settings

  • 提及哪种设置适合您以及您以前使用过的帽子会有所帮助。 (10认同)
  • 刚刚在 kotlin 教程 https://github.com/kotlin-hands-on/intro-coroutines 上遇到了这个问题。将 Gradle JVM 更改为 1.8 解决了该问题 (5认同)
  • 我从 JDK 16 降级到 JDK 15 以成功构建我的应用程序。 (2认同)
  • 对我来说不起作用 - 几个构建都正常,然后它抛出了相同的消息。烦人的是,项目向导提出为我安装 16,但它无法使用它...... (2认同)

小智 25

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

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

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
Run Code Online (Sandbox Code Playgroud)

到:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
Run Code Online (Sandbox Code Playgroud)

不适File -> Project Structure -> Project用于我正在处理的项目。

  • Gradle(版本> 7.3.2)现在支持在 Java 17 上运行和构建。 (7认同)
  • 这个兼容性图表帮助我选择了正确的版本 https://docs.gradle.org/current/userguide/compatibility.html#java (2认同)

Dan*_*cki 18

Java需要正确的版本,这里有一个列表:

Java SE 22 = 66,
Java SE 21 = 65,
Java SE 20 = 64,
Java SE 19 = 63,
Java SE 18 = 62,
Java SE 17 = 61,
Java SE 16 = 60, 
Java SE 15 = 59,
Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
Run Code Online (Sandbox Code Playgroud)


Yau*_*nka 14

要修复“不支持的类文件主要版本63 ”,我们需要将 gradle 更新到 v7.6:

// gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
Run Code Online (Sandbox Code Playgroud)


Emi*_*ylu 11

将 Gradle 版本 6.8.3 升级到 7.0 解决了我的问题。你可以升级它

  • 文件 -> 项目结构 -> 项目(在左侧面板上)
  • 更改 Gradle 版本 7.0

它适用于 Android Gradle 插件版本 4.2.0


sut*_*her 10

就我而言(Manjaro Linux),问题是OpenJDK \xc2\xa016 和 Gradle 存在一个已知错误。(请参阅:*“不支持的类文件主要版本 60”使用 Java 16 工具链 #16766 *)

\n

解决方案是使用以下命令将 Java 指向 openJdk-11:

\n
sudo archlinux-java set java-11-openjdk\n
Run Code Online (Sandbox Code Playgroud)\n

确保已安装此 JDK。在Arch Linux和 Manjaro 上,您可以使用以下命令进行检查:

\n

archlinux-java status

\n

切换到 OpenJDK\xc2\xa011 后,一切再次按预期工作。

\n


小智 9

我也修复了它,以艰难的方式:

\n

爪哇

\n
    \n
  1. 安装最新的Java JDK
  2. \n
  3. 通过添加JAVA_HOME变量(不含bin 的主 Java 文件夹)修复系统环境变量中的 Java 路径,并将%JAVA_HOME%\\bin添加到 PATH 环境变量
  4. \n
  5. java -version现在显示正确的版本
  6. \n
\n

摇篮

\n
    \n
  1. 使用https://gradle.org/install/从头开始​​安装 Gradle
  2. \n
  3. 通过添加GRADLE_HOME变量(没有bin的主 Gradle 文件夹)修复了系统环境变量中的 Gradle 路径,并将%GRADLE_HOME%\\bin添加到 PATH 环境变量
  4. \n
  5. gradle -version现在显示正确的版本,包括。正确的 JVM
  6. \n
\n

IntelliJ IDEA 设置

\n
    \n
  1. 转到设置\xe2\x86\x92构建、执行、部署\xe2\x86\x92构建工具\xe2\x86\x92 Gradle
  2. \n
  3. 编辑 Gradle 用户主页 ( C:/Gradle/gradle-7.0.2 )
  4. \n
  5. 使用 Gradle 来自:C:/Gradle/gradle-7.0.2
  6. \n
  7. Gradle JVM:JAVA_HOME 版本 16.0.1
  8. \n
\n

现在构建时不会出现错误:不支持的类文件主要版本 60

\n


Moh*_*ush 8

我遇到了同样的问题,但使用的是 Android Studio。正如其他人提到的那样,JDK 17 似乎与 Gradle 7.0.2 不兼容。

\n

我通过更改 Android Studio 设置中的 Gradle JDK 设置解决了这个问题:

\n

在菜单中文件\xe2\x86\x92设置\xe2\x86\x92构建、执行、部署\xe2\x86\x92构建工具\xe2\x86\x92 Gradle中。

\n

在 Gradle 部分中,将 Gradle JVM 选项更改为另一个 JDK(例如:JDK11)。

\n

更高版本的 Gradle(版本高于7.3.2版本)支持在 Java 17 上运行和构建。

\n


Rok*_*kas 6

2022 年 12 月 31 日更新

对于所有遇到此问题但尚未找到解决方案的人。首先,您必须检查Java版本的兼容性,以及支持它的第一个 Gradle 版本,位于:兼容性矩阵

然后你必须改变distributionUrlandroid/gradle/wrapper/gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
Run Code Online (Sandbox Code Playgroud)


Men*_*elG 5

对我来说,(在Flutter 中)问题是我使用的是 Java JDK version 16,但某些软件包不支持version 16 。

所以,我降级到 JDK 版本15

在 Windows 上,我执行了以下操作:

  1. 关闭您当前的 IDE/终端(不要跳过此步骤)。

  2. 卸载当前的 Java JDK 并重新启动计算机。

  3. 这里下载并安装 Java JDK 版本 15 (您需要创建一个帐户才能下载)。

  4. 更新JAVA_HOME环境变量


Al *_* Po 5

我遇到了同样的问题。JDK 17 似乎与 Gradle 7.0.2 不兼容。

\n

下载 JDK 16,将其放入_somewhere_(靠近其他 JDK 的文件夹或其他文件夹)

\n

接下来,更新:项目结构\xe2\x86\x92 SDK 位置\xe2\x86\x92 Gradle 设置\xe2\x86\x92 Gradle JDK以匹配_somewhere_

\n

最后,不要忘记将项目与 Gradle 文件同步

\n


Luc*_*ord 5

正如上面提到的,更改具有正确兼容性的页面:兼容性矩阵

就我而言,它是 7.3,因为我使用的是 JDK 17,而 Java 8 适合我!

// gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

58655 次

最近记录:

4 年 前