【问题标题】:IntelliJ: Error:java: error: release version 5 not supportedIntelliJ:错误:java:错误:不支持发布版本 5
【发布时间】:2020-04-23 08:18:21
【问题描述】:

我正在使用 IntelliJ IDEA Ultimate 2019.3.1。每当我尝试启动任何简单的 Java Maven 项目(甚至可能是一个简单的 Hello World)时,我都会收到以下错误:

Error:java: error: release version 5 not supported

通过终端运行 java --version 我得到以下输出:

openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing)

通过终端运行javac --version,我得到以下输出:

javac 11.0.5

转到 Java 编译器的设置(建议 here )我看到了:

我尝试将“目标字节码版本”编辑为 1.8,但出现以下错误:

Error:(1, 26) java: package javafx.application does not exist
Error:(2, 20) java: package javafx.stage does not exist
Error:(4, 27) java: cannot find symbol
  symbol: class Application
Error:(12, 23) java: cannot find symbol
  symbol:   class Stage
  location: class Main
Error:(7, 9) java: cannot find symbol
  symbol:   method launch(java.lang.String[])
  location: class Main
Error:(11, 5) java: method does not override or implement a method from a supertype

将其更改为版本 1.11 我收到此错误:

Error:java: Source option 5 is no longer supported. Use 6 or later.

你认为问题是什么?我该如何解决?

【问题讨论】:

标签: java intellij-idea


【解决方案1】:

请参阅https://stackoverflow.com/a/12900859/104891

首先,像这样在pom.xml中设置language level/release versions

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

Maven 将默认设置为 1.5,否则。如果您还没有添加maven-compiler-plugin,您还需要添加:

<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
</dependency>

另外,请尝试在以下每个位置更改 Java 版本:

文件 -> 项目结构 -> 项目 -> 项目 SDK -> 11.

文件 -> 项目结构 -> 项目 -> 项目语言级别 -> 11.

文件 -> 项目结构 -> 项目 -> 模块 -> -> 来源 --> 11

在项目中 -> ctrl + alt + s -> 构建、执行、部署 -> 编译器 -> Java 编译器 -> 项目字节码版本 -> 11

在项目中 -> ctrl + alt + s -> 构建、执行、部署 -> 编译器 -> Java 编译器 -> 模块-> 1.11.

【讨论】:

  • 我已经完成了所有操作,但每次运行应用程序时仍然看到相同的错误
  • @TusharJajodia 尝试将maven-compiler-plugin 包含为依赖项
  • 在没有运气的情况下在线尝试了各种解决方案后,这一行解决了问题:文件->项目结构->项目->模块->->源-> 11
  • 实际上,对于 java 9+,正确的方法是将 maven-compiler-plugin 定义为插件而不是依赖项。无需在 IntelliJ 中配置任何内容,只需将您的 pom 配置为 right way,它就可以在 IntelliJ 中开箱即用!
  • 遇到了这个问题。我按照步骤操作。问题解决了。谢谢。
【解决方案2】:

我花了一些时间来汇总一个实际的解决方案,但这里是如何摆脱这个编译错误。

  1. 打开 IntelliJ 首选项。

  2. 搜索“compiler”(或类似“compi”)。

  3. 向下滚动到 Maven -->java 编译器。在右侧面板中将列出 模块及其关联的 java 编译版本“目标字节码版本”。

  4. 选择一个 >1.5 的版本。如果没有可用的 jdk,您可能需要升级。

【讨论】:

  • 对我不起作用。我所有的模块都已经 8 点了
  • 这对我有帮助,但我在这里没有看到任何关于 maven 的信息。刚刚搜索了 Java Compiler,就像在屏幕截图中一样
  • 首选项 > 构建、执行、部署 > 编译器 > Java 编译器 > 目标字节码版本。设置此值为我修复了错误。
  • 工作,谢谢。作为参考,我将“目标字节码版本”从 1.5 设置为 1.8。
  • 工作喜欢的魅力
【解决方案3】:

默认情况下,您的“项目字节码版本未在 maven 项目中设置。

它认为你当前的版本是5。

解决方案 1:

只需转到“项目设置>构建,执行...>编译器>java编译器”,然后将您的字节码版本更改为您当前的java版本。

解决方案 2:

在 POM 文件中添加以下构建插件:

 <properties>
        <java.version>1.8</java.version>
        <maven.compiler.version>3.8.1</maven.compiler.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

【讨论】:

    【解决方案4】:

    我将以下代码添加到我的pom.xml 文件中。它解决了我的问题。

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    

    【讨论】:

      【解决方案5】:

      在我的情况下,将此部分添加到 pom.xml 文件中就足够了:

          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>3.8.0</version>
                      <configuration>
                          <release>11</release>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      

      【讨论】:

        【解决方案6】:

        我做了上述所有事情,但还必须在 IntelliJ 中做一件事:

        项目结构 > 模块

        我必须更改每个模块的“语言级别”

        【讨论】:

          【解决方案7】:

          如果您使用的是 IntelliJ, 去设置=>编译器 并将版本更改为您当前的 java 版本。

          【讨论】:

            【解决方案8】:

            就我而言,唯一可行的解​​决方案是将以下块添加到pom.xml

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version> <configuration> <release>12</release>
                    </configuration>
                    </plugin>
                </plugins>
            </build>
            

            【讨论】:

            • 不错,但该人需要对 Java 11 的支持,因此我建议在他的情况下使用 &lt;release&gt;11&lt;/release&gt;
            【解决方案9】:

            您应该通过以下任一方法进行另一项更改:


            1 通过 IntelliJ GUI

            正如“tataelm”所说:

            项目结构 > 项目设置 > 模块 > 语言级别: > 然后更改为您喜欢的语言级别


            2 直接编辑 IntelliJ 配置文件

            通过编辑以下行直接打开 &lt;ProjectName&gt;.iml 文件(如果您使用 IntelliJ,它会在您的项目文件夹中自动创建),

            发件人:&lt;component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5"&gt;

            收件人:&lt;component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"&gt;

            由于您的方法也意味着编辑此文件。 :)


            方法 1 实际上是要求 IntelliJ 帮助编辑 .iml 文件,而不是由您直接进行。

            【讨论】:

            • 我遵循所有其他步骤,在 IDE 中的每个可能选项中将 JDK 设置为 11,但不知何故 .iml 仍然有“JDK_1_5”,所以你的第 2 步为我做了,我不得不手动更改它。谢谢。
            【解决方案10】:

            一些答案​​已经定义了问题的解决方案。但还是有必要表达一个细节。该问题完全与maven有关,解决方案也在pom.xml配置中。 IntelliJ 只读取 maven 配置,如果配置有错误信息,IntelliJ 也会尝试使用。

            要解决问题,正如大多数答案中所表达的,只需将以下属性添加到项目的 pom.xml 中即可。

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

            之后,在 IntelliJ 端,重新导入 maven 配置。要重新导入 maven 配置,请右键单击项目的 pom.xml 文件并选择重新导入。 IntelliJ 首选项中的编译器版本相关信息将根据 pom.xml 中的值自动更新。

            【讨论】:

            • 谢谢。我错过了“重新加载项目”部分。
            【解决方案11】:

            您只需在 pom.xml 中添加这两行。之后,您的问题就会消失。

            <!--pom.xml-->
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
            </properties>
            
            

            【讨论】:

              【解决方案12】:

              如果你使用 spring boot 作为 parent,你应该设置 java.version 属性,因为这会自动设置正确的版本。

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

              您自己项目中定义的属性会覆盖父 pom.xml 中设置的任何内容。这会覆盖编译到正确版本所需的所有属性。

              一些信息可以在这里找到:https://www.baeldung.com/maven-java-version

              【讨论】:

              • 我现在也开始学习 Spring Boot,所以这些信息对我来说真的很有用:) 你能详细解释一下吗? (我应该在哪个文件中更改这些属性,我应该准确地写什么...?)谢谢!
              • 我在帖子中添加了一些额外的信息。
              【解决方案13】:

              我已经用 Java 编译器和字节码完成了您提出的大多数事情,并且过去解决了这个问题。 自从我运行我的 Java 代码已经快 1 个月了(那时一切都已修复),但现在问题又出现了。 不知道为什么,虽然很生气!

              这次的解决方案是: 右键项目名称 -> 打开模块设置 F4 -> 语言级别 ...您可以在那里定义您的项目/PC 的语言级别。

              过去和现在都没有 maven/pom 配置对我有用,我已经将 Java 编译器和字节码设置为 12。

              【讨论】:

              • 没错!!这可能是这里的正确答案......我正要纠正相同的解决方案:)
              【解决方案14】:

              在 IntelliJ 中,打开 pom.xml 文件。

              &lt;dependencies&gt; 之前添加此部分(如果您的文件已经有&lt;properties&gt; 部分,只需将下面的&lt;maven.compiler...&gt; 行添加到该现有部分):

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

              【讨论】:

                【解决方案15】:

                您需要设置语言级别,发布版本并将maven编译器插件添加到pom.xml

                <properties>
                  <maven.compiler.source>1.8</maven.compiler.source>
                  <maven.compiler.target>1.8</maven.compiler.target>
                </properties>
                
                <dependency>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <version>3.8.1</version>
                </dependency>
                

                【讨论】:

                  【解决方案16】:

                  又找到了一个地方可以改变,这对我来说实际上是固定的。

                  Project Structure -> < Select Module > Dependencies -> Module SDK < Select version from drop down >
                  

                  【讨论】:

                    【解决方案17】:

                    我遇到了同样的问题,但差别很小。我的错误信息如下。

                    IntelliJ: Error:java: error: release version 16 not supported

                    所以在 Intellij 中转到

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

                    这里有一个名为“项目字节码版本”的字段。默认值为 16,我将其更改为 8,一切正常。

                    【讨论】:

                      【解决方案18】:

                      各位,我也遇到了这个问题,在研究了这么多这个问题后,我找到了 3 个解决方案来解决这个问题

                      1. 在您的 pom.xml 中添加这些属性; //抱歉格式化了

                      &lt;properties&gt;&lt;java.version&gt;1.8&lt;/java.version&lt;maven.compiler.version&gt;3.8.1&lt;/maven.compiler.version&lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;&lt;java.version&gt;11&lt;/java.version&gt;&lt;/properties&gt;

                      1. 删除目标字节版本中的所有内容,你可以在IntelliJ的java编译器设置中找到这个

                      Remove everything below target byte version make it empty

                      1. 在依赖项中找到您正在使用的 appium 版本。这里我使用的是 7.3.0 find the version of the appium you are using in the dependency in pom.xml

                      然后在java编译器的目标字节版本中写入你的版本 enter image description here

                      享受代码>>>希望它对你有用

                      【讨论】:

                        【解决方案19】:

                        在IntelliJ中,默认的maven编译器版本低于5,不支持,所以我们必须手动更改maven编译器的版本。

                        我们有两种方式来定义版本。

                        第一种方式:

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

                        第二种方式:

                        <build>
                          <plugins>
                            <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-compiler-plugin</artifactId>
                                <version>3.8.0</version>
                                <configuration>
                                    <source>8</source>
                                    <target>8</target>
                                </configuration>
                            </plugin>
                          </plugins>
                        </build>
                        

                        【讨论】:

                          【解决方案20】:
                          For me in Intelij click on File -> Project Structure -> select the modules in language level select 11 - Local variable syntax for lambda parameters, click em aply.
                          
                          Run in terminal mvn clean install.
                          

                          它解决了我的问题。

                          【讨论】:

                            猜你喜欢
                            • 2021-03-08
                            • 1970-01-01
                            • 2021-05-09
                            • 2022-01-24
                            • 2019-03-18
                            • 1970-01-01
                            • 2016-01-15
                            • 1970-01-01
                            相关资源
                            最近更新 更多