intellij公司:error:java:错误:不支持版本5

uklbhaso  于 2021-07-06  发布在  Java
关注(0)|答案(16)|浏览(551)

我使用的是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编译器的设置(如这里所建议的),我看到:

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

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

3pmvbmvn

3pmvbmvn1#

在我的例子中,唯一有效的解决方案是在 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>
zvms9eto

zvms9eto2#

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

klsxnrf13#

转到src folder/然后是main folder//然后是sources file///取消标记目标文件夹exclude///使用

ebdffaop

ebdffaop4#

只需在pom.xml中添加这两行。在那之后,你的问题就没有了。

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

iqjalb3h5#

如果您使用springboot作为父级,那么应该设置java.version属性,因为这将自动设置正确的版本。

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

在您自己的项目中定义的属性将覆盖父pom中设置的任何内容。这将覆盖编译到正确版本所需的所有属性。
以下是一些信息:https://www.baeldung.com/maven-java-version

kcrjzv8t

kcrjzv8t6#

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

juud5qan7#

伙计们,我也遇到了这个问题,经过这么多的研究,我找到了3个解决这个问题的办法
在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> 删除目标字节版本中的所有内容,可以在intellij的java编译器设置中找到
删除低于目标字节版本的所有内容使其为空
在依赖项中查找您正在使用的appium版本。在这里,我使用7.3.0在pom.xml的依赖关系中查找您正在使用的appium的版本
然后在java编译器的目标字节版本中编写您的版本,在此处输入图像描述
享受代码>>>希望对你有用

rt4zxlrg

rt4zxlrg8#

我做了上面的所有事情,但在intellij中还必须做一件事:
项目结构>模块
我必须改变每个模块的“语言水平”

c6ubokkw

c6ubokkw9#

我已经用java编译器和字节码完成了您提议的大多数事情,并在过去解决了这个问题。我运行java代码已经快一个月了(那时一切都已修复),但现在问题又出现了。不知道为什么,不过很恼火!
这一次的解决方案是:右键单击“项目名称”->“打开模块设置f4”->“语言级别…”,在那里您可以定义您的项目/pc的语言级别。
过去和现在都没有maven/pom配置适合我,我已经将java编译器和字节码设置为12。

11dmarpk

11dmarpk10#

默认情况下,maven项目中没有设置“project”字节码版本。
它认为你现在的版本是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>
ncecgwcz

ncecgwcz11#

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

wfveoks012#

我花了一些时间来聚合一个实际的解决方案,但下面是如何消除这个编译错误。
打开intellij首选项。
搜索“compiler”(或类似“compi”的内容)。
向下滚动到maven-->java编译器。在右边的面板中,将列出模块及其相关的java编译版本“target bytecode version”
选择版本>1.5。如果jdk不可用,您可能需要升级jdk。

jecbmhm3

jecbmhm313#

如果您使用的是intellij,请转到setting=>compiler并将版本更改为当前的java版本。

nfg76nw0

nfg76nw014#

这个问题的解决方案已经在一些答案中确定了。但仍然需要表达一个细节。这个问题完全与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文件并选择reimport。intellij首选项中的编译器版本相关信息将根据pom.xml中的值自动更新。

vd8tlhqk

vd8tlhqk15#

我将以下代码添加到 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>

相关问题