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

yizd12fk  于 2022-09-20  发布在  IntelliJ IDEA
关注(0)|答案(13)|浏览(222)

我在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项目。)

此项目未使用的Major version 60 refers to Java 16,。我已经进入了Project Structure并确保它被设置为使用JDK版本14。但“ijmapper”这个名字表明这与IntelliJ有关,这很可能是IDE的问题,而不是项目的问题。

Map器文件简单地说:

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

换句话说,一个简单的多边形填充。

这是怎么回事,我怎么才能把它修好?

6yoyoihd

6yoyoihd1#

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

我通过更改IntelliJ设置中的Gradle JVM设置修复了此问题:

  • 设置/首选项对话框中,进入**构建、执行、部署构建工具Gradle*。
  • Gradle部分下,更改Gradle JVM选项。选择适合您的Gradle JVM

参见解析现有项目的Gradle JVM版本

brtdzjyr

brtdzjyr2#

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

gradle/wrapper/gradle-wrapper.properties目录下的文件中,只需更改Gradle的版本号即可。例如,如果您的Gradle版本为6.3,请更改以下设置:

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

致:

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

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

bt1cpqcv

bt1cpqcv3#

将Gradle版本6.8.3升级到7.0解决了我的问题。您可以对其进行升级:

  • 菜单文件项目结构项目(左面板)
  • 更改为Gradle版本7.0

它可以与Android Gradle插件4.2.0版一起使用。

wixjitnu

wixjitnu4#

对我来说,(在Flutter中)问题是我使用的是Java JDK版本16,但对于某些包来说,版本16是not supported

所以,我降级到了JDK版本15

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

1.关闭当前的IDE/终端(请勿跳过此步骤)。
1.卸载当前Java JDK并重启计算机。
1.从here下载并安装Java JDK版本15(需要创建帐号才能下载)。
1.更新JAVA_HOME Environment Variable

xriantvc

xriantvc5#

我也把它修好了,用一种艰难的方式:

Java

1.安装了最新的Java JDK
1.通过添加JAVA_HOME变量(没有bin的主Java文件夹)和将*%JAVA_HOME%\bin*添加到PATH环境变量,修复了系统环境变量中的Java路径
1.java -version现在显示正确的版本

Gradle

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

IntelliJ IDEA设置

1.进入设置构建、执行、部署构建工具Gradle
1.编辑Gradle用户主页(C:/Gradle/Gradle-7.0.2)
1.使用C:/Gradle/Gradle-7.0.2中的Gradle
1.Gradle JVM:JAVA_HOME版本16.0.1

现在构建时没有错误:不支持的类文件主版本60

wlp8pajw

wlp8pajw6#

在我的例子(Manjaro Linux)中,问题是OpenJDK和Gradle存在一个已知的错误。(见:Unsupported class file major version 60" Using toolchain with Java 16 #16766)

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

sudo archlinux-java set java-11-openjdk

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

archlinux-java status

在切换到OpenJDK 11之后,一切都恢复到了预期的水平。

7xzttuei

7xzttuei7#

我也面临着同样的问题,但在Android Studio上。就像其他人提到的那样,JDK 17似乎与Gradle 7.0.2不兼容。

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

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

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

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

camsedfj

camsedfj8#

我也遇到了同样的问题。看起来JDK 17与Gradle 7.0.2不兼容。

Download JDK 16,将其放下_somewhere_(靠近其他JDK的文件夹或其他位置)

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

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

kokeuurv

kokeuurv9#

如上所述,使用正确的兼容性更改页面:Compatibility Matrix

在我的例子中,它是7.3,因为我使用的是JDK 17,而Java 8适合我!

// gradle/wrapper/gradle-wrapper.properties
distributionUrl=https://services.gradle.org/distributions/gradle-7.3-bin.zip
n53p2ov0

n53p2ov010#

我的项目是使用Java 16和Maven构建一个Spring Boot应用程序。我收到了相同的错误,并能够通过以下步骤解决它:

1.导航到IntelliJ Idea→首选项...生成、执行、部署编译器→*Java编译器
1.在“每模块字节码版本:”下选择您的模块。
1.点击红色“-”按钮,删除自定义设置
1.点击应用

我认为这个字节码设置(16)与我的项目(11)中配置的字节码设置冲突。移除超驰装置清除了它。

2admgd59

2admgd5911#

目前不支持JDK 17,建议使用设置/Gradle中的IDE提供的嵌入式Java。

waxmsbnn

waxmsbnn12#

在Spring Tool Suite(STS)/Eclipse中,即使在更改了构建路径、编译器、默认JRE从16到11.0之后,它也没有修复。最后,在STS.ini文件中,我必须将*-vm*参数从

-vm plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149/jre/bin

-vm C:Program FilesJavajdk-11.0.12bin

ulmd4ohb

ulmd4ohb13#

我通过installing巧克力包管理器和运行

choco install -y nodejs.install openjdk8

在PowerShell管理中。

相关问题