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

Error:java: error: release version 5 not supported

运行java——version by terminal得到如下输出:

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 by terminal得到如下输出:

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.

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


当前回答

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

其他回答

我已经用Java编译器和字节码完成了您建议的大部分工作,并在过去解决了这个问题。 我运行Java代码已经将近一个月了(那时一切都已修复),但现在问题又出现了。 不知道为什么,不过挺烦的!

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

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

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

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

打开IntelliJ首选项。 搜索“编译器”(或者类似于“compi”)。 向下滚动到Maven——>java编译器。的列表 模块及其相关的Java编译版本“目标字节码版本”。 选择版本号为>1.5。如果没有可用的jdk,您可能需要升级jdk。

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

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

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

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

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


1通过IntelliJ GUI

正如“tataelm”所提到的:

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


2直接编辑IntelliJ配置文件

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

<组件名称="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">

到:<组件名称="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">

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


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