Error: Java: invalid target release: 11 - IntelliJ IDEA

Error: Java: invalid target release: 11 - IntelliJ IDEA

我正在尝试构建一个使用 java 8 构建的应用程序,现在它已升级到 java 11。我在我的 [= 中安装了 Java 11 using an oracle article 55=] machine 我使用 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 但是它出错了 "The selected directory is not a valid home for JDK"

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

只有 JDK 个文件夹

还是我需要更改其他内容?

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

  • 我今天收到了相同的信息消息和错误消息,但我有 最近更新了 Idea -> 2018.3.3,构建于 2019 年 1 月 9 日。
  • 为了解决这个问题,我更改了 File->Project Structure->Modules ->> 语言等级达到 10。

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

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

    它可能对像我这样的人有用,有最新的想法并得到同样的错误。

我遇到了与 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

希望有用

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

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

“项目语言级别:”设置为“11 - lambda 参数的局部变量语法” 所以我将其更改为“SDK default (8 - Lambdas, type annotations etc.)”然后应用更改 错误已解决。

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

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

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

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

2 种方法中的 1 种可以解决问题:

方法一(推荐)

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

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

例如,要将源和目标兼容性设置为 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 设置都将被删除,并且它们将使用默认设置重新创建。

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

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

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

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

解法:

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

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

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

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

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

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

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

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

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

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

  1. 确保 pom.xml 指定您想要的 jdk。
  2. 确保 maven 指定您想要的 jdk。
  3. 确保 Projects 指定您想要的 jdk。
  4. 确保模块指定您的整数 jdk 并且依赖项指定您的 jdk。 hth.

我将这两行添加到 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路径

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

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

在 运行 之后您会看到错误已解决..

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

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

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

  2. 转到,文件 -> 设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器
    在这里,在 Module 列中,您可以看到列出了您的项目,在 Target bytecode version 列中,已经指定了项目的 Java 版本(11个居多),改成8

  3. 转到文件 -> 项目结构 -> 模块。在这里,在 Source 选项卡中,您可以看到 Language level 选项,选择 8 - Lambdas,类型注释等.最后,选择“应用”和“确定”,一切顺利。

2021 年 1 月 6 日

这对我有用。

转到文件 -> 项目结构和 select window 右侧面板上的“依赖项”选项卡。然后像这样使用下拉菜单更改“Module SDK”。然后应用更改。

2021 年 1 月 12 日

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

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

  2. 然后我转到文件 -> 项目结构以确保我的 IntelliJ 使用与我的环境相同的版本,即 11.2。

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

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)

试试这个

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

在较新版本的 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

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

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

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

并使用版本 11 更新 Gradle JVM

上面的方法我都试过了

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

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

问题是 build.gradle 文件有

sourceCompatibility = '11'

将其更改为 8,它不再抛出 'compile failed invalid release 11' 错误

解决方案参考:github forum

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

我的解决方案:

  1. 转到文件 > 设置 > 构建、执行、部署 > 构建工具 > Gradle
  2. Select Gradle JVM:[SDK 版本]
  3. 编译

如果配置 Project Properties 对你不起作用,你还应该记住更改 maven 或 Gradle 的 SDK 版本,这可能指向错误的路径或 JDK版本。

为此:

  1. 点击文件 |设置 |构建、执行、部署 |构建工具
  2. 如果是maven,点击maven然后点击Runner,设置JRE使用项目JDK。
  3. 如果Gradle,点击Gradle然后设置GradleJVM