作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我无法使用 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”实际上是 JDK10,具有向后移植的 JDK11 安全更新。这相当令人困惑,所以有 an open bug report with Ubuntu .另见 this post on the AskUbuntu stack exchange .
要解决此问题,您必须手动将系统设置为使用实际的 JDK11。我做了类似于 this guide 的事情修复它。
关于java - Gradle 5 和 Java 11 构建错误 : Why does Gradle think I'm using Java 10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53490183/
我是一名优秀的程序员,十分优秀!