错误: Java: 无效的目标版本: 11-IntelliJ IDEA

我正在尝试构建一个应用程序,它是用 java8构建的,现在已经升级到 java11了。我在 窗户机中使用 神谕文章安装了 爪哇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 文件夹

还是我需要改变什么?

350969 次浏览

请将 更新发送到 IntelliJ IDEA 2018.x 以获得对 Java 11的支持。您的 IntelliJIDEA 版本是在 Java11之前发布的,并且不支持这个 Java 版本。

  • 今天我收到了同样的信息消息和错误消息,但是我收到了 最近更新的创意-> 2018.3.3,建于2019年1月9日。
  • 为了解决这个问题,我修改了 文件-> 专案结构-> 模组-> 语言水平达到10

  • 然后选中 < strong > File-> Settings-> Build,Execution, Deployment-> Compiler-> Java Compiler -> < strong > Project bytecode 和 每个模块的字节码版本。我有11个那里。

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

    对于像我这样的人来说,拥有最新的想法并得到相同的错误,这可能是有用的。

我和格鲁有同样的问题。 同样的 Intellij 20183.3

我能够开始我的项目设置(如格里戈里所述)

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

我希望它能派上用场

在更新了我的创意之后,我得到了同样的错误,我解决了它如下:

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

“ Project language level:”设置为“11-Lambda 参数的局部变量语法” 所以我把它改成了“ SDK default (8-Lambdas,类型注释等)”,然后应用了这个变化 错误得到了解决。

只是犯了同样的错误。问题是我的 package-info.java file是空的。只要我在里面加上软件包的名字就可以了。

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

从 IntelliJ 中的项目设置(F4)来看,一切看起来都不错,Java 被设置为1.7。但是,当我尝试从 IDE 重新编译错误被抛出,因为错误的目标级别。在检查之后,我发现在一个 iml 文件语言中被设置为 JDK _ 11。手动更换到 JDK _ 1 _ 7后,一切恢复正常。

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

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

方法1 (推荐)

在生成文件中指定 Java 版本。

例如,对于 Gradle,转到 build.Gradle 文件并指定源和目标的兼容性,就像在 医生中提到的那样,然后点击 Gradle 工具窗口中的刷新按钮。

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

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

方法2

如果通过构建系统(Maven,Gradle 等)构建项目通过命令行工作,但 IntelliJ 显示 Invalid target release错误,然后执行以下操作,

  1. 关闭情报室

  2. 转到项目目录

  3. 删除. idea/目录

  4. 使用项目目录启动 IntelliJ

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

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

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

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

enter image description here

我的项目模块被设置为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: 无效的源发布: 11... ... 所以我只是把 java 11的所有注释都改成了 java 8,即使注释是 java 8,我也只是这样保留它。我希望这能帮你解决问题。

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

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

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

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

在 < java.version > 中的 pom.xml 文件中,写“8”而不是写“11”,并且 RECOMPILE 您的 pom.xml 文件 还真管用!

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

  1. 确保 pom.xml 指定所需的 jdk。
  2. 确保 Maven 指定了你想要的 jdk。
  3. 确保 Projects 指定了所需的 jdk。
  4. 确保模块指定整数 jdk AND 依赖项指定 jdk。 啊。

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

compileJava.options.fork = true
                                              

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

而且成功了

我使用的窗口和我的项目基于梯度

My jdk path-> ‘ C: Program Files Java jdk-11.0.8’

请提供 JDK 路径

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

  1. 文件-> 专案结构-> 专案
  2. 单击 ProjectSDK 下的 New 按钮: 添加最新的 SDK 并单击 OK。

enter image description here

运行后,您将看到错误已解决. 。

enter image description here

enter image description here

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

下面的改动对我有效,希望同样对你有效。

  1. 将 pom.xml 文件中的 Java 版本从11更改为8
    < java.version > 1.8

  2. 转到,File-> Settings-> Build,Execution,Deployment-> Compiler-> Java Compiler
    在这里,在 模组列中,您可以看到您的项目列出,在 目标字节码版本列中,已经指定了该项目的 Java 版本(大部分是11) ,将其更改为 < b > 8

  3. 转到,文件-> 项目结构-> 模块。在这里,在 来源选项卡,您可以看到 语言水平选项,选择 8-Lambdas,类型注释等。。最后,选择“应用”和“确定”,就可以开始了。

2021年1月6日

我就是这么做的。

转到 File-> Project Architecture 并选择窗口右侧面板上的“ Dependency”选项卡。然后使用下拉列表更改“ ModuleSDK”,如下所示。然后应用更改。

image 1

2021年1月12日

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

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

  2. 然后我转到 File-> Project Architecture,以确保我的 IntelliJ 使用与 env 相同的版本,即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. enter image description here enter image description here enter image description here
  2. 然后是 File > Settings > Java Compiler。检查以下设置:
    • 使用编译器: Javac
    • 项目字节码版本: 11
    • 每个模块的字节码版本: 所有模块的目标字节码版本必须设置为 11enter image description here

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

如果你的项目是使用渐变建立的,你应该更新:

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

并更新 Gradle JVM版本11。

我尝试了以上所有的解决方案

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

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

问题是 build.gradle 文件

Source 兼容性 = “11”

将其更改为8,并停止抛出“编译失败无效版本11”错误

参考溶液: Github 论坛

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

Gradle properties 路径: C: Users < username > . gradle gradle.properties

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

我的解决办法是:

  1. 点击文件 > 设置 > 构建、执行、部署 > 构建工具 > 级别
  2. 选择 Gradle JVM: [ SDK VERSION ]
  3. 编译

enter image description here

如果配置 Project Properties从来没有为您工作过,您还应该记得为 maven 或 Gradle更改 SDK 版本,这可能指向错误的路径或 JDK版本。

要做到这一点:

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

对我来说,导致这个错误消息的问题是我的 JAVA _ HOME 环境变量仍然指向 JDK 1.8目录。 我做了一个 JAVA _ HOME 环境变量,指向 JDK 11目录,它工作了。

好的,这个问题已经很老了,可能对大多数开发人员来说并不重要,但是我想展示一下这个问题的工作解决方案。

首先,我对这个问题的理解是: 通常(默认情况下) IntelliJ 使用它的内部编译器来编译源代码。也许有一种方法可以指定编译器,但是我还没有找到配置它的方法。这只是一个猜测: 也许 IntelliJ 试图使用项目 JDK 编译器,如果失败了-使用内部。在我的例子中,IDEA 是旧版本,而内部的 JRE (和编译器)是版本8。当然,这个编译器不能编译 Java11源代码-它会发出错误“ Java: 无效的目标版本: 11”

解决办法: 为了确保使用 JDK 编译器,我们必须将构建作业委托给 Maven。Maven 将使用适当的 javac 可执行文件,并且它将能够将 Java11源编译成您想要的任何目标版本。

文件-> 设置-> 构建,执行,部署-> 构建工具-> Maven-> 运行器 然后选中“将 IDE build/run action 委托给 maven”

就是这样——现在您的老 IntelliJ IDEA 将能够使用任何新的 JDK 版本构建/运行项目。

另一个解决方案对我有效,但根本原因是我在过去的 Maven 配置中搞砸了。

在所有的建议我的 JAVA_HOME时,我通过终端呼叫它显示我正在使用 Java 11,但当我检查 mvn -v我得到的信息,Maven 使用 Java 1.8..。
真奇怪。我浏览了所有建议的 IntelliJ 设置(项目结构、编译器版本等) ,所有的东西都指向使用 Java 11 但是最后我发现我把过去的配置搞错了。
我正在使用 Mac,在我的情况下,根本原因是覆盖默认系统 JAVA_HOME,虽然 Maven 设置在 ~/.mavenrc配置文件。 内部,我已经覆盖了指向 1.8库的 JAVA_HOME属性。
我之所以这样做是因为之前在其他项目中遇到了与 maven 有关的问题,我需要强制 maven 使用 Java 1.8,所以当我切换到另一个项目时,它最终导致了问题。
我知道这是非常具体的,但也许有其他人谁通过了所有的建议,没有工作,并覆盖了这个变量。

添加这个插件

<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>