格雷德尔5号和;Java11构建错误:为什么Gradle认为I';我在用Java10吗?
我无法使用Java11和Gradle5构建我的项目。我在尝试生成时收到以下错误:格雷德尔5号和;Java11构建错误:为什么Gradle认为I';我在用Java10吗?,java,ubuntu,gradle,Java,Ubuntu,Gradle,我无法使用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 too
$ 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构建(见此处)。我使用的是Gradle5,但在使用4.10.2时也出现了此错误
以下是mybuild.gradle的相关部分:
apply plugin: 'java'
sourceCompatibility = 11
我也尝试过使用1.11
来实现源代码兼容性,但同样的错误也失败了。这个问题是Ubuntu 18独有的。apt
中的“JDK11”实际上是带有后端口JDK11安全更新的JDK10。这是相当令人困惑的,所以有。另见
要解决此问题,必须手动将系统设置为使用实际的JDK11。我做了类似的事情来修复它。不确定Gradle是否支持Java11。其他人也看到了这个错误。他们的Gradle5发行说明说他们现在正式支持Java11:做了更多的挖掘,我遇到的问题是Ubuntu独有的。Ubuntu实际上提供了伪装成JDK11的JDK10,不知道为什么:不确定为什么有人会认为这是一个好主意。我也遇到了类似的问题,但当gradle使用JAVA_HOME选择正确版本的JDK(11而不是1.8)时,这一问题就解决了。JAVA_HOME可以很容易地按照这一点设置