IntelliJ:错误:java:错误:不支持发行版本5

时间:2020-01-05 14:54:15

标签: java intellij-idea

我正在使用 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),我看到了:

Java Compiler Settings

我尝试将“ 目标字节码版本”编辑为 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.

您认为问题出在哪里?我该怎么解决?

21 个答案:

答案 0 :(得分:67)

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

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

<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。

答案 1 :(得分:30)

花点时间汇总一个实际的解决方案,但这是摆脱这种编译错误的方法。

  1. 打开IntelliJ首选项。

  2. 搜索“编译器”(或类似“ compi”的东西)。

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

  4. 选择一个版本> 1.5。如果jdk不可用,则可能需要升级。

enter image description here

答案 2 :(得分:10)

默认情况下,您的“项目字节码版本未在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>

答案 3 :(得分: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>

答案 4 :(得分:4)

我做了上面的所有事情,但是不得不在IntelliJ中做另外一件事:

项目结构>模块

我不得不更改每个模块的“语言级别”

答案 5 :(得分:3)

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

答案 6 :(得分:3)

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


1 通过 IntelliJ GUI

正如 'tataelm' 所提到的:

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


2 直接编辑 IntelliJ 配置文件

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

来自:<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">

至:<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">

因为你的方法也意味着编辑这个文件。 :)


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

答案 7 :(得分:2)

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

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

答案 8 :(得分:2)

已经在某些答案中定义了该问题的解决方案。但是仍然需要表达一个细节。问题完全与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中的值自动更新。

答案 9 :(得分:1)

如果您将spring boot用作父级,则应设置java.version属性,因为这会自动设置正确的版本。

int main() {
    std::string s;
    std::cin >> s;
    for (std::size_t i = 0, size = s.size(); i < size; i++) {
        std::cout << s.substr(0, i + 1) << std::endl;
    }
}

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

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

答案 10 :(得分:1)

在我看来,唯一可行的解​​决方案是在null中添加以下代码块:

array_values()

答案 11 :(得分:1)

又找到了一个需要更改的地方,这对我来说确实解决了。

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

enter image description here

答案 12 :(得分:0)

我遇到了同样的问题,但略有不同。我的错误信息如下。

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

所以在 Intellij 中转到

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

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

答案 13 :(得分:0)

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.

它解决了我的问题。

答案 14 :(得分:0)

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

<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>

答案 15 :(得分:0)

就我而言,将这部分添加到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>

答案 16 :(得分:0)

伙计们,在对此问题进行了大量研究之后,我也遇到了这个问题,我发现了3种解决方案来解决此问题

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

<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><java.version>11</java.version></properties>

  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

享受代码>>>希望为您工作

答案 17 :(得分:0)

在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>

答案 18 :(得分:0)

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

这次解决方案是: 右键单击项目名称->打开模块设置F4->语言级别 ...然后您可以在其中定义项目/个人计算机的语言级别。

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

答案 19 :(得分:0)

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

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

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

答案 20 :(得分:-1)

转到src文件夹/然后是主文件夹//然后是源文件///未标记目标文件夹为排除/////欣赏