17

我在用 :

  1. gradle-2.3
  2. javac-版本= 1.7
  3. jre = 1.7
  4. regedit 显示它指向 1.7。

但我仍然低于错误

任务 ':compileJava' 执行失败。> 无效的源版本:1.7

请让我知道如何解决它。

4

7 回答 7

12

您说您正在使用 Java 7 运行,但您确定吗?

因为据我所知,当您使用运行 gradle 的 JVM 不支持的源/目标级别时,就会发生错误。因此,如果我猜测一下,我会说 gradle 似乎认为您的 JDK 不支持 Java 7(因此它的 JDK 6 或更低版本)

也许仔细检查一下

a) Gradle 本身与 JDK 7 一起运行。如果您使用 STS gradle 工具从 Eclipse 中运行 gradle,它将使用工作区默认 JRE 来运行 gradle。检查它是否至少是 JDK 7。(转到“Windows >> 首选项 >> Java >> 已安装的 JRE”。带有“复选标记”的 JRE 是 Gradle 将运行的那个)。

b) 如果 Gradle 找到环境变量“JAVA_HOME”,Gradle 可能会意外选择另一个 JDK 来编译内容。因此,请仔细检查它是否指向 JDK 6 或更低版本。

于 2015-05-26T17:40:21.937 回答
10

您可以通过将“gradle.properties”文件添加到您的项目来设置 gradle 用于构建的 JDK 版本。添加以下属性:

org.gradle.java.home = <Path to the JDK you want to use for your project>

我同意前面的答案,您还应该检查 JDK 和 sourceCompatibility 是否匹配。

于 2015-07-18T14:49:41.957 回答
3

检查 $JAVA_HOME 是否真的指向默认的 java # echo $JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk # java -version openjdk 版本“1.8.0_151”,如果像上面那样没有对齐,修改 /etc/profile 中的 $JAVA_HOME (或者您用户主目录中的 .profile/.bashprofile/ )让指向 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 顺便说一句:在 Centos7 解决以修复 Invalid release 1.8

于 2017-12-07T02:12:33.793 回答
1

在您的构建 gradle 中尝试以下操作:

apply plugin: 'java'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

如果这不起作用,请提供您的 build.gradle 的内容。

于 2015-05-26T08:03:32.763 回答
1

在我的情况下,Gradle 在 JRE 而不是JDK上运行(错误的 JAVA_HOME 集)。将我的 JAVA_HOME 指向 JDK 的根目录修复了构建。(当然,假设你的 PATH 有 %JAVA_HOME%\bin)

原因

JDK 有用于编译 java 的 javac,而 JRE 没有。

于 2017-05-30T14:18:15.497 回答
1

刚刚有 1.8 java 的“错误”

已解决:Findbugs 在方法标题中显示了一个 ü(不允许在 graddle 中使用)

于 2017-07-26T00:22:51.380 回答
0

如果您尝试了所有解决方案,即 -

  1. 修复 JAVA_HOME 和 Java 运行时间
  2. 在首选项中修复 Gradle JVM 版本
  3. 设置 org.gradle.java.home =

您仍然面临问题,然后检查您的 build.gradle 文件并查看是否sourceCompatibility = '17' 单独存在。如果是,请将其注释掉。

于 2022-03-02T10:49:00.520 回答