我在 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 。我已经进入 项目结构 并确保它设置为使用 JDK 版本 14。但是“ijmapper”这个名称表明这与 IntelliJ 有特殊关系,这可能是 IDE 问题而不是项目问题。
映射器文件简单地说:
if(!ext.has('mapPath')) ext.mapPath = { path -> path}
换句话说,一个简单的 polyfill。
这是怎么回事,我该如何解决?
原文由 Mason Wheeler 发布,翻译遵循 CC BY-SA 4.0 许可协议
长话短说;博士; 您需要拥有与您的
Java
版本兼容的Gradle
版本,并将 Gradle 配置为完全使用该版本(不是旧的 Java,甚至不是更新的版本)。我通过更改 IntelliJ 设置中的 Gradle JVM 设置解决了这个问题:
在 Settings/Preferences 对话框中,转到 Build, Execution, Deployment → Build Tools → Gradle 。
在 Gradle 部分下,更改 Gradle JVM 选项。选择适合您的 Gradle JVM 。
参见 _Resolve the Gradle JVM version for the existing project_