我在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}
换句话说,一个简单的多边形填充。
这是怎么回事,我怎么才能把它修好?
13条答案
按热度按时间6yoyoihd1#
**tl;dr;**您需要有与您的
Gradle
版本兼容的Java
版本,并将Gradle配置为完全使用该版本(不是较旧的Java,甚至不是较新的版本)。我通过更改IntelliJ设置中的Gradle JVM设置修复了此问题:
参见解析现有项目的Gradle JVM版本
brtdzjyr2#
对我来说,这是通过升级Gradle版本修复的。
在
gradle/wrapper/gradle-wrapper.properties
目录下的文件中,只需更改Gradle的版本号即可。例如,如果您的Gradle版本为6.3
,请更改以下设置:致:
在我正在处理的项目的文件→项目结构→项目中不可用。
bt1cpqcv3#
将Gradle版本6.8.3升级到7.0解决了我的问题。您可以对其进行升级:
它可以与Android Gradle插件4.2.0版一起使用。
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。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
显示了现在包含的正确版本。正确的JVMIntelliJ 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
wlp8pajw6#
在我的例子(Manjaro Linux)中,问题是OpenJDK和Gradle存在一个已知的错误。(见:“Unsupported class file major version 60" Using toolchain with Java 16 #16766)
解决方案是使用以下命令将Java指向OpenJDK-11:
确保安装了此JDK。在Arch Linux和Manjaro上,您可以使用以下命令进行检查:
archlinux-java status
在切换到OpenJDK 11之后,一切都恢复到了预期的水平。
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上运行和构建。
camsedfj8#
我也遇到了同样的问题。看起来JDK 17与Gradle 7.0.2不兼容。
Download JDK 16,将其放下
_somewhere_
(靠近其他JDK的文件夹或其他位置)接下来,更新:项目结构→SDK位置→Gradle设置→Gradle JDK以匹配
_somewhere_
最后,不要忘记将项目与Gradle文件同步。
kokeuurv9#
如上所述,使用正确的兼容性更改页面:Compatibility Matrix
在我的例子中,它是7.3,因为我使用的是JDK 17,而Java 8适合我!
n53p2ov010#
我的项目是使用Java 16和Maven构建一个Spring Boot应用程序。我收到了相同的错误,并能够通过以下步骤解决它:
1.导航到IntelliJ Idea→首选项...→生成、执行、部署→编译器→*Java编译器
1.在“每模块字节码版本:”下选择您的模块。
1.点击红色“-”按钮,删除自定义设置
1.点击应用
我认为这个字节码设置(16)与我的项目(11)中配置的字节码设置冲突。移除超驰装置清除了它。
2admgd5911#
目前不支持JDK 17,建议使用设置/Gradle中的IDE提供的嵌入式Java。
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
ulmd4ohb13#
我通过installing巧克力包管理器和运行
在PowerShell管理中。