微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Gradle 5和Java 11构建错误:为什么Gradle认为我使用的是Java 10?

我无法使用Java 11和Gradle 5构建我的项目.尝试构建时收到以下错误

$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认为我使用的是JDK 10?我的$JAVA_HOME设置为/usr/lib/jvm/java-1.11.0-openjdk-amd64/,这是用于Java 11的Linux OpenJDK构建(在此处找到https://jdk.java.net/11/).我正在使用Gradle 5,但是使用4.10.2也发生了这个错误.

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

apply plugin: 'java'
sourceCompatibility = 11

我也尝试使用1.11来实现源代码兼容性,但这也失败并出现相同的错误.

解决方法:

这个问题对于Ubuntu 18来说是独一无二的.在apt中的“JDK11”实际上是带有向后移植的JDK11安全更新的JDK10.这是相当令人困惑的,所以有an open bug report with Ubuntu.另见this post on the AskUbuntu stack exchange.

解决此问题,您必须手动将系统设置为使用实际的JDK11.我做了类似于this guide的修复工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐