Gradle 错误:Eclipse环境下gradle报错Could not target platform: 'Java SE 10' using tool chain: 'JDK 8 (1.8)'.

问题简述

当使用gradle 的时候,在build.gradle 文件中,通过如下脚本指定代码的版本。

project.sourceCompatibility=1.10
project.targetCompatibility=1.10

这个问题其实已经很明显,gradle 是依赖groovy ,groovy又是依赖jdk 的,明显,如果你gradle 使用的jdk版本如果是1.8。但是这里,你却要求gradle 用jdk10对你的代码进行编译,这必然会有问题,因为已知jdk的交叉编译仅仅能够编译版本低于当前jdk版本。例如jdk 8 能编译 1.8 1.7 1.6…1.4版本的java源代码 ,但是不能编译jdk9 或者10 的代码。

怎么理解?举个例子,jdk的一项新特性是局部变量类型推断 。类似于如下代码

      var x = new ArrayList<String>();

jdk8 应该怎么理解?根本对于jdk8来说就是无法理解的名词。所以编译的过程中。

解决方法

首先,必须确定你的有jdk10以上的java。本人使用jdk12,你使用jdk10也是没问题的。
在这里插入图片描述

确保你有了jdk 了之后,我们就得分情况解决

命令行方法

命令行方法其实在你配置完成jdk之后已经解决了。此时你只需要作确认即可。
在这里插入图片描述

如果此时不是正确的版本,请注意java home是否配置正确,如果正确。请注意path环境变量中是否包含其他的java,查询办法是where java命令。

Eclipse解决方法

Eclipse环境下,Gradle 使用的jdk 版本是和Eclipse 启动使用的java 版本是一样的。所以,想要解决好在Eclipse环境下的Gradle 运行时,jdk版本的问题。只需要更换Eclipse 使用的Jdk 版本即可。
###方法一
修改JAVA_HOME环境变量指向jdk10 的环境变量
###方法二
修改eclipse.ini文件
在这里插入图片描述

-vm
C:\Program Files\Java\jdk-10.0.2\bin\javaw.exe

有时候可以这样子配置

-vm
C:\Program Files\Java\jdk-9\bin\server\jvm.dll

类似的目录大家自行查找一下就好了。

猜你喜欢

转载自blog.csdn.net/blueboz/article/details/82822113