IntelliJ: Error:java: Error: release version 5不支持

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

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.

你认为是什么问题?我该怎么解决呢?

349054 次浏览

看到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版本:

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

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

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

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

在项目-> ctrl + alt + 年代 ->构建,执行,部署->编译器-> Java编译器->模块-> 1.11。

如果使用spring boot作为父进程,则应该设置java。属性,因为这将自动设置正确的版本。

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

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

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

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

  1. 打开IntelliJ首选项。

  2. 搜索“编译器”;(或者类似“compi"”)。

  3. 向下滚动到Maven—>java编译器。的列表 模块及其相关的Java编译版本"目标字节码版本。"

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

enter image description here

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

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

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


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

如果您使用IntelliJ, 转到setting =>编译器 并将版本更改为当前Java版本

在我的情况下,唯一有效的解决方案是将以下块添加到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>

默认情况下,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>

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

我已经做了你提出的大多数事情与Java编译器和字节码,并解决了过去的问题。 我运行Java代码已经将近一个月了(那时一切都已修复),但现在问题又出现了。 不知道为什么,不过挺烦的!< / p > 这次的解决方案是: 右键单击项目名称->打开模块设置F4 ->语言水平 ...在这里你可以定义你的项目/pc的语言级别

无论是过去还是现在,maven/pom配置都不适合我,我已经将Java编译器和字节码设置为12。

我做了上面所有的事情,但必须在IntelliJ中再做一件事:

项目结构及gt;模块

我不得不改变每个模块的“语言水平”。

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

伙计们,在对这个问题进行了大量研究之后,我也遇到了这个问题,我找到了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编译器设置中找到这一点

删除目标字节版本以下的所有内容,使其为空

  1. 找到你在依赖中使用的appium版本。这里我使用的是7.3.0 李在pom.xml中找到您在依赖项中使用的appium的版本 < / >
然后在java编译器的目标字节版本中写入您的版本 在这里输入图像描述 < / p >

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

在我的例子中,将这部分添加到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>

您需要设置语言级别,发布版本,并将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>

你应该用下面的方法做更多的改变:


1通过IntelliJ GUI

正如“tataelm”所提到的:

项目结构及gt;项目设置>模块在语言水平:祝辞然后切换到您喜欢的语言级别


2直接编辑IntelliJ配置文件

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

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

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

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


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

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.

它解决了我的问题。

又找到了一个可以换衣服的地方,这对我来说很好。

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

enter image description here

我也有同样的问题,但有一点不同。我的错误信息如下。

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

在Intellij中

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

在这里有一个名为“项目字节码版本”的字段。这里的默认值是16,我把它改为8,一切都很好。

  1. 文件→设置

enter image description here

  1. 从左边开始->&;构建、执行、部署;→“java compiler"

enter image description here

  1. 选择您所从事的项目并选择所需的Java版本

enter image description here

1.使用这个属性

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

2.添加这个依赖项

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

3.重载mvn