当前位置: 首页 > 知识库问答 >
问题:

Gradle5&Java11构建错误:为什么Gradle认为我在使用Java10?

宋英杰
2023-03-14

我无法使用Java11和Gradle5构建我的项目。尝试生成时收到以下错误:

$ gradle clean build
> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 10 (1.10)'.

为什么Gradle认为我在使用JDK10?我的$JAVA_HOME设置为/usr/lib/jvm/java-1.11.0-openjdk-amd64/,这是用于Java 11的Linux OpenJDK构建(可在https://jdk.Java.net/11/)。我使用的是Gradle5,但使用4.10.2时也出现了这个错误。

以下是我的build.gradle的相关部分:

apply plugin: 'java'
sourceCompatibility = 11

我还尝试使用1.11来实现源代码兼容性,但同样失败,出现了同样的错误。

共有1个答案

金飞翼
2023-03-14

这个问题是Ubuntu18独有的。apt中的“JDK11”实际上是带有后端JDK11安全更新的JDK10。这是相当混乱的,所以有一个开放的bug报告与Ubuntu。请参阅AskUbuntu堆栈交换的这篇文章。

要解决这个问题,您必须手动将系统设置为使用实际的JDK11。我做了类似于本指南的事情来修复它。

 类似资料:
  • 为什么运行命令科尔多瓦建立Android,错误每次 exe:科尔多瓦构建Android 示例CMD:失败:构建失败,有一个异常。 > 错误:任务“:app:processDebugGoogleServices”的执行失败。 文件google-services.json丢失。没有它,谷歌服务插件无法运行。搜索位置:C:\用户\华硕\桌面\彩票-泰国\平台\android\app\src\debug\

  • 我试着理解为什么我在IntelliJ中有Java11。当我在Intellij终端中运行时,我得到以下响应: 当我从Windows命令提示符运行相同的命令时,我会得到以下信息: 我真的不明白为什么我在Intellij终端中有Java 11,因为我有这些项目设置: 模块: Java编译器: 在pom.xml中:

  • Gradle是一个优秀的构建系统和构建工具,它允许通过插件创建自定义的构建逻辑。 我们基于Gradle以下的一些特点而选择了它: 采用了Domain Specific Language(DSL语言)来描述和控制构建逻辑。 构建文件基于Groovy,并且允许通过混合声明DSL元素和使用代码来控制DSL元素以控制自定义的构建逻辑。 支持Maven或者Ivy的依赖管理。 非常灵活。允许使用最好的实现,但

  • 我想做一个APK的网络应用程序,我把它包装成Cordova。我遵循了各种教程,安装了Gradle并使其工作。 当我从CMD运行时,我会得到以下错误:

  • 我正在尝试使用Codename One构建服务器为J2ME构建我的应用程序。这一直运行良好,但现在我每次都会遇到构建错误。这是日志的摘录,其中在准备输出jar时提到了StackOoverflow Error: 最后一行又重复了1023次,一直到文件的结尾。 我已经将我的源代码重绕到我以前构建的版本,现在也失败了,出现了同样的错误消息。 这可能是我的开发环境发生了变化,还是构建服务器出现了问题? 任

  • 问题内容: ABstractMethodError的可能原因是什么? 线程“ pool-1-thread-1”中的异常java.lang.AbstractMethodError: 问题答案: 简单的答案是这样的:一些代码试图调用一个声明的方法。抽象方法没有主体,无法执行。由于您提供的信息很少,因此我无法真正详细说明如何发生这种情况,因为编译器通常会遇到此问题- 如此处所述,这意味着该类必须在运行时