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
小智 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
用于我正在处理的项目。
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 解决了我的问题。你可以升级它
它适用于 Android Gradle 插件版本 4.2.0
sut*_*her 10
就我而言(Manjaro Linux),问题是OpenJDK \xc2\xa016 和 Gradle 存在一个已知错误。(请参阅:*“不支持的类文件主要版本 60”使用 Java 16 工具链 #16766 *)
\n解决方案是使用以下命令将 Java 指向 openJdk-11:
\nsudo archlinux-java set java-11-openjdk\n
Run Code Online (Sandbox Code Playgroud)\n确保已安装此 JDK。在Arch Linux和 Manjaro 上,您可以使用以下命令进行检查:
\narchlinux-java status
切换到 OpenJDK\xc2\xa011 后,一切再次按预期工作。
\n小智 9
我也修复了它,以艰难的方式:
\njava -version
现在显示正确的版本gradle -version
现在显示正确的版本,包括。正确的 JVM现在构建时不会出现错误:不支持的类文件主要版本 60
\n我遇到了同样的问题,但使用的是 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 上运行和构建。
\n2022 年 12 月 31 日更新
对于所有遇到此问题但尚未找到解决方案的人。首先,您必须检查Java版本的兼容性,以及支持它的第一个 Gradle 版本,位于:兼容性矩阵。
然后你必须改变distributionUrl
:
android/gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
Run Code Online (Sandbox Code Playgroud)
正如上面提到的,更改具有正确兼容性的页面:兼容性矩阵
就我而言,它是 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 次 |
最近记录: |