【问题标题】:Error: Java: invalid target release: 11 - IntelliJ IDEA错误:Java:无效的目标版本:11 - IntelliJ IDEA
【发布时间】:2019-06-05 19:56:06
【问题描述】:

我正在尝试构建一个使用 java 8 构建的应用程序,现在它已升级到 java 11。我在 windows 机器中使用 an oracle article 安装了 Java 11 并使用 IntelliJ IDEA 2017 作为我的 IDE。

我更改了系统环境变量并设置了

JAVA_HOME to C:\Program Files\Java\jdk-11.0.1

并将其添加到 Path 变量中。

C:\>java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode) 

当我在 IntelliJ 中构建我的应用程序时,我得到了以下结果:

Information:java: Errors occurred while compiling module 'test-domain_main'
Information: javac 1.8.0_171 was used to compile java sources
Information:1/10/2019 4:21 PM - Compilation completed with 1 error and 0 warnings in 1s 199ms
Error:java: invalid target release: 11

这是我迄今为止尝试过的:

  1. 我将 .idea/compiler.xml 目标值从 8 更改为 11,但这并没有帮助。另外,验证了settings > Build, Execution, Deployment > Compiler > Java Compiler中的Target bytecode version,我的所有模块都设置为11。

  2. 去了file > Project Structure > SDKs *(currently I have 1.7 and 1.7 listed)* > Add new SDK > JDK > 之后,我选择了C:\Program Files\Java\jdk-11.0.1 但它出错了“所选目录不是JDK的有效主目录”

我不确定我是否安装了错误的 JDK 11,因为在我的 C:\Program Files\Java\ 中,我看到 1.71.8 的单独 JDK 和 JRE 文件夹,但只有 11.0.1 的 JDK 文件夹

或者是我需要改变什么?

【问题讨论】:

  • 我猜2017版本的intellij不支持jdk11(或者可能需要插件才能工作),你可以尝试更新到2018。
  • 感谢@JornVernee 根据您的建议,我更新并解决了这个问题。 Java 11 与 IntelliJ IDEA 2018.3.3 版本配合良好。

标签: java intellij-idea java-11


【解决方案1】:

我遇到了与 Gryu 所说的相同的问题。 相同的 Intellij 2018 3.3

我能够通过设置(如 Grigoriy 所述)开始我的项目

File->Project Structure->Modules ->> Language level to 8 ( my maven project was set to 1.8 java)

File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> 8 also there

希望对你有用

【讨论】:

  • stackoverflow.com/a/26009627/1357094stackoverflow.com/a/26009627/1357094 更详细地描述了其他类似/可能必要的解决方案(带有屏幕截图)
  • 正是我需要的。谢谢!
  • 对于找不到的人。 File -> Settings我在IntelliJ IDEA -> Preferences... -> Build, Execution, Deployment -> Compiler -> Java Compiler找到它
  • 但是为什么呢?这是 IDEA 的 bug 吗?
  • 这必须是公认的答案。谢谢。
【解决方案2】:
  • 我今天收到了相同的信息消息和错误消息,但我有 最近更新了 Idea -> 2018.3.3,构建于 2019 年 1 月 9 日。
  • 为了解决这个问题,我更改了 File->Project Structure->Modules ->> 语言等级至 10。

  • 并检查文件->设置->构建,执行, 部署 -> 编译器 -> Java 编译器 ->> 项目字节码每模块字节码版本。我那里有 11 个。

  • 现在我没有收到这些通知和错误。

    对于像我这样拥有最新创意并遇到相同错误的人来说可能很有用。

【讨论】:

  • 这对我有用,即使 IntelliJ 日期早于 Java 发布日期。文件 => 项目结构 => 项目 => 项目 SDK。在New下添加新下载的JDK并点击Apply => OK之后项目立即开始编译。
  • stackoverflow.com/a/26009627/1357094stackoverflow.com/a/26009627/1357094 更详细地描述了其他类似/可能必要的解决方案(带有屏幕截图)
【解决方案3】:

两种方法中的一种可以解决问题:

方法一(推荐)

在构建文件中指定 Java 版本。

例如,对于 Gradle,转到 build.gradle 文件并指定源和目标兼容性,如 docs 中所述,然后单击 Gradle 工具窗口中的刷新按钮。

例如,将源和目标的兼容性设置为 Java 版本 17:

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

方法二

如果通过构建系统(Maven、Gradle 等)构建项目有效但 IntelliJ 显示 Invalid target release 错误,则执行以下操作,

  1. 关闭 IntelliJ

  2. 进入项目目录

  3. 删除.idea/目录

  4. 使用项目目录启动 IntelliJ

这将重新创建 .idea/ 目录,并且不再显示错误。

注意:当 .idea/ 目录被删除时,您添加的任何特定于存储库的 IntelliJ 设置都将被删除,并且将使用默认值重新创建它们。

【讨论】:

  • 删除./idea文件夹是不是有点太苛刻了?您的所有设置都将消失。
  • 是的,我同意它有点苛刻。所有存储库特定设置都将消失,但将保留自定义键盘映射等全局设置,因为它们存储在用户的主目录中。用注释更新了答案。
【解决方案4】:

以下更改对我有用,希望对您也有用。

  1. 在 pom.xml 文件中将 Java 的版本从 11 更改为 8
    1.8

  2. 转到,文件 -> 设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器
    在这里,在 Module 列中,您可以看到列出的项目,并且在 Target bytecode version 列中,已经指定了项目的 Java 版本(主要是 11),将其更改为 8

  3. 转到,文件 -> 项目结构 -> 模块。在这里,在 Source 选项卡中,您可以看到 Language level 选项,选择 8 - Lambdas,键入注释等。最后,选择 Apply 和 OK,一切顺利。

【讨论】:

  • 只有 #1 对我有用.. 尝试了很多解决方案,但都有效
  • 这对我有用。即,更改了 pom 中的版本,然后还更改了 IntelliJ 中的这两个位置。不知道为什么 IntelliJ 中有 2 个位置需要指定 Java 版本。
  • pom.xml 路径在哪里?
  • 嘿@MML,pom.xml 在项目本身的根级别中可用,例如 {Your Project}\pom.xml。展开你的项目你会看到 pom.xml
  • @b-sangappa 我在 android studio 中切换到项目视图,但我找不到这个文件,我可以手动创建它吗?
【解决方案5】:

update IntelliJ IDEA 2018.x 以获得 Java 11 支持。您的 IntelliJ IDEA 版本在 Java 11 之前发布,不支持此 Java 版本。

【讨论】:

  • 2020版也有同样的问题。所以这不是一个正确的答案或部分正确。您必须从项目结构中更改 sdk 版本。
  • @Zafar 这是原始问题的正确答案,并且 OP 已接受它。但此错误可能有多种原因,无法在单个答案中涵盖。
  • 这不是正确的答案:) 或者至少不是完整的答案。您仍然可以使用较新的 IntelliJ 版本遇到此问题
【解决方案6】:

2021 年 1 月 6 日

这对我有用。

转到文件 -> 项目结构并选择窗口右侧面板上的“依赖项”选项卡。然后像这样使用下拉菜单更改“模块 SDK”。然后应用更改。

【讨论】:

  • 这解决了我谢谢,当模块在无效的 Java 版本中建立索引时可能会发生这种情况
【解决方案7】:

Maven 也有可能使用不同版本的 JDK,在这种情况下,您可以将 Maven 设置为使用项目默认的 JDK 版本。

【讨论】:

  • 这是一个非常有用的答案。!!
【解决方案8】:

更新我的想法后遇到同样的错误,我解决了如下:

文件 >> 项目结构... >> 项目

“项目语言级别:”设置为“11 - lambda 参数的局部变量语法” 所以我将其更改为“SDK 默认值(8 - Lambdas,类型注释等)”然后应用更改 并且错误已解决。

【讨论】:

    【解决方案9】:

    在较新版本的 Intellij 中,检查 jdk 11 是否配置正确:

    1. 右键单击您的项目,然后单击Open Module Settings。检查下面列出的设置:
      • SDKs (Under Platform Settings) > Add the jdk 11 you want located on your computer
      • Modules (Under Project Settings) > Set language level to jdk 11 for sources and dependencies
      • Project (Under Project Settings) > Select jdk 11 as Project SDK
    2. 然后File > Settings > Java Compiler。检查以下设置:
      • 使用编译器:Javac
      • 项目字节码版本:11
      • 每个模块的字节码版本:所有模块的目标字节码版本必须设置为11

    【讨论】:

      【解决方案10】:

      我最近遇到了同样的问题。 运行我的项目主文件后,此错误显示在我的屏幕上。 错误:java:无效的源版本:11 按照步骤解决此错误

      1. 文件->项目结构->项目
      2. 点击Project SDK下的New按钮:添加最新的SDK并点击OK。

      运行后你会看到错误已解决..

      你可以看到它完美地工作.. 如果您发现任何问题,请联系我

      【讨论】:

        【解决方案11】:

        如果你是Springboot,请检查pom.xml文件中的java版本

        <properties>
           <java.version>11</java.version>
        </properties>
        

        如果此版本与您计算机的默认版本 (Java) 不匹配,则可能会发生该错误。

        【讨论】:

        • 我已经在除此处之外的所有地方进行了更改。感谢您指出这一点。
        【解决方案12】:

        我遇到了这个问题,因为我目前正在将我的代码库升级到 JDK 11,并且正在分支中的 8 和 11 之间切换。看来 IntelliJ 不喜欢这样。

        解决方案:

        如果您在项目结构 (Ctrl+Shift+Alt+S) 中选择了正确的 JDK,但仍然出现错误,请使缓存 File &gt; Invalidate Caches / Restart... 无效。

        重新启动 IDE 后,我的错误消失了。

        【讨论】:

          【解决方案13】:

          我可以说我有类似的问题。我的情况:我在工作区中从新版本切换到旧版本的项目,尝试运行需要重新编译的单个 junit,重新编译错误抛出无效目标。

          从 IntelliJ 中的项目设置 (F4) 中,一切看起来都不错,java 设置为 1.7。但是当我尝试从 IDE 重新编译时,由于目标级别错误而引发错误。检查后我发现在其中一个 iml 文件中的语言设置为 JDK_11。手动更改为 JDK_1_7 后一切恢复正常。

          值得在 IDE 创建的 *iml 文件中手动检查语言级别。

          【讨论】:

          • 我可以像上面的 cmets 一样添加很好的检查选项:File -&gt; Settings -&gt; Build, Execution, Deployment -&gt; Compiler -&gt; Java Compiler 并查看目标代码是否设置正确。
          • 这会继续回滚到以前的设置。是否有永久修复此问题的方法?这个配置可以粘在项目上吗? (如果有多个项目有多个Java版本,如何在代码中处理)
          【解决方案14】:

          对我来说,我遇到了同样的问题,但它是 java v8,我在我的机器上为我的不同项目使用了不同版本的 java。在导入我的一个项目时,我遇到了同样的问题。为了检查配置,我检查了所有与 SDK 相关的设置,无论是在 File-&gt;Project-&gt;Project Structure / Modules 还是在运行/调试配置设置中。我设置为java-8 的所有内容,但我仍然遇到同样的问题。在检查所有配置文件时,我发现 .idea 中的 compiler.xml 有一个设置为 11 的 bytecodeTargetLevel 条目。在这里,如果我将其更改为 8,即使它显示相同的编译器输出并删除 &lt;bytecodeTargetLevel target="11" /&gt; 来自compiler.xml 解决问题。

          【讨论】:

            【解决方案15】:

            我的项目模块设置为 8,但是 pom.xml 设置为 11。当我在模块中从 8 更改为 11 时,它起作用了。

            【讨论】:

              【解决方案16】:

              在你的 pom.xml 文件里面 写“8”而不是写“11”,然后重新编译你的 pom.xml 文件 并且 tadaaaaaa 它有效!

              【讨论】:

                【解决方案17】:

                我尝试了以上所有方法,发现了这个秘方

                1. 确保 pom.xml 指定了您想要的 jdk。
                2. 确保 maven 指定了您想要的 jdk。
                3. 确保 Projects 指定了您所需的 jdk。
                4. 确保 Modules 指定您的整数 jdk 并且 Dependencies 指定您的 jdk。 hth。

                【讨论】:

                  【解决方案18】:
                  1. pom.xml (start with this important)
                      - <java.version>1.8</java.version>
                      * Enable auto import on pop up
                      * Wait until it loads
                  
                  2. Project Structure
                      - Project
                          - Project SDK - 1.8 
                          - Project language Level - 8
                      - Modules
                          - Sources
                              - Language level - 8
                              - Dependencies - Project SDK 1.8
                  
                  3. Delete idea folder
                  4. Close window
                  5. Reopen window (make sure it loads at bottom)
                  

                  【讨论】:

                    【解决方案19】:

                    2021 年 1 月 12 日

                    对我来说,重点是在我的 pom.xml 中明确指定版本为 java 11,我通过以下步骤解决了这个问题。

                    1. 打开终端并输入:java -version,然后我得到 1.8,然后我去 .bash_profile 将 java 版本切换到 11.2,因为我安装了多个 java 版本。请记住“重新启动”您的终端并再次检查您的 java 版本以确认切换成功。

                    2. 然后我转到 File -> Project Structure 以确保我的 IntelliJ 使用与我的 env 相同的版本,即 11.2。

                    3. 重新启动您的 Intellij,mvn clean install,已解决,希望这可以帮助遇到同样问题的人,谢谢。

                    【讨论】:

                      【解决方案20】:

                      如果你的项目是使用 gradle 构建的,你应该更新:

                      File > Settings > Build, Execution, Deployment > Build Tools > Gradle
                      

                      并将Gradle JVM 更新为版本 11。

                      【讨论】:

                        【解决方案21】:

                        只是有同样的错误。问题是我有空的package-info.java file。一旦我在其中添加了包名,它就起作用了......

                        【讨论】:

                          【解决方案22】:

                          我也遇到同样的错误,我只是将 pom.xml 中的 java 版本从 11 更改为 1.8,它工作正常。

                          【讨论】:

                            【解决方案23】:

                            我也遇到了类似的错误,但在我的情况下是 Error:java: invalid source release: 11... 所以我只是将 java 11 的所有注释更改为 java 8,即使注释是 java 8,我就这样离开了。我希望它可以帮助您解决问题。

                            【讨论】:

                              【解决方案24】:

                              我更改了文件 -> 项目结构 -> 项目设置 -> 模块 在源选项卡中,我将语言级别从:14 或 11 设置为:“项目默认值”。这解决了我的问题。

                              【讨论】:

                                【解决方案25】:

                                我将这两行添加到 build.gradle 文件中

                                compileJava.options.fork = true
                                                                              
                                compileJava.options.forkOptions.executable = 'C:\\Program Files\\Java\\jdk-11.0.8'
                                

                                它可以工作

                                我正在使用windows和我的基于gradle的项目

                                我的 jdk 路径 -> 'C:\Program Files\Java\jdk-11.0.8'

                                请提供您的 jdk 路径

                                【讨论】:

                                  【解决方案26】:

                                  试试这个

                                  <properties>
                                      <maven.compiler.target>1.8</maven.compiler.target>
                                      <maven.compiler.source>1.8</maven.compiler.source>
                                  </properties>
                                  

                                  【讨论】:

                                    【解决方案27】:

                                    以上方法我都试过了

                                    • gradle jvm 版本,java 编译器字节码版本,模块语言。

                                    我将以上所有内容都设置为 java 8(或 1.8),因为那是我机器上的库。还是不行。

                                    问题是 build.gradle 文件有

                                    sourceCompatibility = '11'

                                    将此更改为 8 并停止抛出“compile failed invalid release 11”错误

                                    解决方案参考:github forum

                                    【讨论】:

                                      【解决方案28】:

                                      我遇到了同样的 java 11 目标错误,我的问题是 maven-compiler-plugin 过时的版本。 升级到最新版本,一切正常

                                      【讨论】:

                                        【解决方案29】:

                                        gradle.properties 中为 Java 主页设置正确的路径为我解决了这个问题

                                        gradle 属性路径:C:\Users.gradle\gradle.properties

                                        org.gradle.java.home=yourjdk11homepath
                                        Example : org.gradle.java.home=C\:/Program Files/Java/jdk-11.0.8
                                        

                                        【讨论】:

                                          猜你喜欢
                                          • 2018-02-27
                                          • 2020-11-19
                                          • 2017-04-02
                                          • 2017-10-29
                                          • 2020-01-28
                                          • 1970-01-01
                                          • 2021-05-09
                                          • 2021-01-13
                                          相关资源
                                          最近更新 更多