【问题标题】:Gradle - Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'Gradle - 无法定位平台:'Java SE 8' 使用工具链:'JDK 7 (1.7)'
【发布时间】:2017-10-15 04:57:06
【问题描述】:

我正在尝试使用本地 Gradle 发行版在 Intellij Idea 中导入 Gradle 项目,并使用以下消息获取堆栈跟踪:Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'。 谁能解释一下可能是什么原因?

【问题讨论】:

  • 您使用的是哪个 JDK 版本?尝试使用与 graddle 中定义的相同
  • 我已经将同一个 JDK 的路径放在 Gradle(通过 gradle.properties)和 Idea 项目结构中。这是你的意思吗?我错过了什么吗?
  • 是的,在那之后有效果吗?
  • 很遗憾,没有。
  • 可以添加显示 intelliJ 级别 SDK 的屏幕截图吗?

标签: java intellij-idea gradle


【解决方案1】:

这对我有用(Intellij Idea 2018.1.2):

1) 导航至:文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Gradle

2) Gradle JVM:更改为 1.8 版

3) 重新运行 gradle 任务

【讨论】:

  • IntelliJ 2018.1.6(社区版)没有这个选项
  • 在 Mac 上,导航到“IntelliJ Idea”->“首选项”->“构建、执行、部署”->“构建工具”->“Gradle”
  • 我又遇到了这个问题...在我已经投过一次谁知道多久以前... ++
【解决方案2】:

对于 IntelliJ 2019:

Intellij IDEA -> 首选项 -> 构建、执行、部署 -> 构建工具 -> Gradle -> Gradle JVM

选择正确的版本。

【讨论】:

    【解决方案3】:

    对于 IntelliJ 2019、JDK 13 和 gRPC:

    Intellij IDEA -> 首选项 -> 构建、执行、部署 -> 构建工具 -> Gradle -> Gradle JVM

    选择正确的版本

    您可能还需要在 build.gradle dependencies

    中添加以下行
    compileOnly group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
    

    【讨论】:

      【解决方案4】:

      最后我导入了我的 Gradle 项目。这些是步骤:

      1. 我从本地 Gradle 发行版切换到 Intellij Idea Gradle Wrapper (gradle-2.14)。
      2. 我将系统变量 JAVA_HOME 指向 JDK 8(之前是第 7 位) 通过实验发现 Gradle Wrapper 可以处理 仅使用 JDK 8 的项目。
      3. 我删除了之前手动创建的文件 gradle.properties(带有 org.gradle.java.homevariable) 在 windows 用户 .gradle 目录中 我猜,它并没有给 Gradle 带来任何额外的价值。

      【讨论】:

      • 在 Eclipse 中我也遇到了这个问题,因为我的系统将 JAVA_HOME 环境变量设置为 JDK7(运行 echo $JAVA_HOME 进行检查)。更改系统范围内的 JAVA_HOME 或使用 JAVA_HOME=/path/to/jdk8 eclipse 启动 eclipse 以缓解此问题
      【解决方案5】:

      由于我必须编译一些兼容 7 的源代码,因为一些遗留系统并遇到了同样的问题。我发现在 gradle 配置中有两个选项设置为 java 8

      sourceCompatibility = 1.8
      targetCompatibility = 1.8
      

      将这些切换到 1.7 为我解决了这个问题,保持 JAVA_HOME 指向已安装的 JDK-7

      sourceCompatibility = 1.7
      targetCompatibility = 1.7
      

      【讨论】:

        【解决方案6】:

        我有一个非常相关的问题,但对于更高的 Java 版本:

        $ ./gradlew clean assemble
        
        ... <other normal Gradle output>
        
        Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
        

        我注意到使用 InteliJ 运行时任务成功。添加一个名为 .java-version 的文件(与 build.gradle 相同的级别)解决了我的问题:

         # .java-version
         11.0.3
        

        【讨论】:

          【解决方案7】:

          你必须在 build.Gradle 中更改 -> sourceCompatibility = '1.7'

          【讨论】:

            【解决方案8】:

            以下内容对我有用:

            1. 进入IntelliJ右上角->点击图标
            2. 在Project Structure窗口中->选择项目->在Project SDK中,选择正确的版本->点击Apply->点击OK

            【讨论】:

              【解决方案9】:

              除了以上所有信息以更改 IntelliJ 设置上的 JVM 版本外,我想提一下,您必须为项目的所有模块执行此操作。

              因此,如果您正在处理一个多模块项目,请确保您更改了所有项目的 JVM 版本。

              【讨论】:

                【解决方案10】:

                所以我从其他答案中看到有几种处理方法。但我不相信这一点。它必须简化为一种方式。我喜欢 IDE,但是如果我按照不同答案提供的 IDE 步骤进行操作,我知道这不是基本代数。我的错误看起来像:

                * What went wrong:
                Execution failed for task ':compileJava'.
                > Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
                

                而科学解决的方法是:

                vi build.gradle
                

                更改自:

                java {
                    sourceCompatibility = JavaVersion.toVersion('11')
                    targetCompatibility = JavaVersion.toVersion('11')
                }
                

                变成:

                java {
                    sourceCompatibility = JavaVersion.toVersion('8')
                    targetCompatibility = JavaVersion.toVersion('8')
                }
                

                科学方法是可以进行辩论并处理公分母的方法。

                【讨论】:

                • 这很有帮助。但随后其他文件开始出现错误。可能最好的办法是将jdk升级到11
                【解决方案11】:

                虽然这个问题专门问的是 IntelliJ,但这是我在 Google 上收到的第一个结果,所以我相信很多 Eclipse 用户在使用 Buildship 时可能会遇到同样的问题。

                您可以在 Eclipse 中设置您的 Gradle JVM,方法是转到 Gradle 任务(在默认视图中,在控制台底部附近),右键单击您尝试运行的特定任务,单击“打开 Gradle 运行配置...”并移至 Java Home 选项卡并为您的项目选择正确的 JVM。

                【讨论】:

                  【解决方案12】:

                  Java 9 JDK 9.0.4

                  1. 进入Android Studio(4.1.1)左上角->点击文件
                  2. 点击设置
                  3. 点击构建、执行、部署
                  4. 点击编译器
                  5. 点击 Kotlin 编译器
                  6. 目标 JVM 版本

                  文件 |设置 |构建、执行、部署 |编译器 | Kotlin 编译器

                  【讨论】:

                    【解决方案13】:

                    如果您从 IntelliJ 终端运行 gradle build,请执行以下操作:

                    1. 使用以下命令检查 JAVA_HOME 指向的 java 版本: INBENJKUMARLM1:payment-service jkuma00$ echo $JAVA_HOME /Users/jkuma00/.sdkman/candidates/java/11.0.11.9.1-amzn
                    2. 检查 build.gradle 文件中的源兼容性版本。 sourceCompatibility = JavaVersion.VERSION_11

                    根本原因:$JAVA_HOME 报告的主要 java 版本必须与 sourceCompatibility 属性具有的 java 版本值匹配。如果有不匹配。会出现这个问题。

                    解决方案:更改源兼容性版本或更改 JAVA_HOME 值。动机是匹配这些版本,一切都应该没问题。

                    【讨论】:

                      猜你喜欢
                      • 2021-01-17
                      • 1970-01-01
                      • 1970-01-01
                      • 2022-12-10
                      • 2021-03-27
                      • 1970-01-01
                      • 2023-02-20
                      • 2012-06-07
                      • 2013-10-04
                      相关资源
                      最近更新 更多