错误:java:无效的源版本:8在Intellij。 这是什么意思?

我试图编译一些代码我使用Intellij Ultimate 13.1.4,但我得到以下错误,我不知道这是什么意思:

Information:Using javac 1.7.0_55 to compile java sources Information:java: Errors occurred while compiling module 'Example' Information:Compilation completed with 1 error and 0 warnings in 3 sec Information:1 error Information:0 warnings Error:java: invalid source release: 8 

我的猜测是它与Java 8和Java 7相关的东西,但我不知道具体是什么。 我已经试过Google的这个消息,但是他们要么谈论javac或者target release ,所以看起来并不适用。

当将项目从Java 8“降级”到Java 6时,我遇到了同样的问题。原因是在IntelliJ的所有地方都没有改变。

在IntelliJ 13.1.4中,我不得不在以下地方更改Java和SDK版本,以免发生此错误:

  • 文件 – >项目结构 – >项目设置
  • 文件 – >项目结构 – >模块设置 – >选项卡:来源:语言级别
  • 文件 – >项目结构 – >模块设置 – >选项卡:依赖项:模块SDK
  • 文件 – >设置 – >编译器 – > Java编译器 – >目标字节码版本

文件>项目结构>项目的截屏

文件>项目结构>模块>来源的截屏

文件>项目结构>模块>依赖关系的截屏

文件>设置/首选项>编译器> Java编译器的屏幕截图

最后一颗是我没有更新的那颗子弹。 一旦我改变了这个,错误消失了。

首先检查你的pom.xml (如果你有的话)
检查您的模块的JDK依赖性。 确保它是1.8
为此,请转到“ 项目结构” – >“SDK”
添加path到你已经存储1.8jdk1.8.0_45.jdk在我的情况)
应用更改
现在,进入项目结构 – >模块
将模块SDK更改为1.8
应用更改

瞧! 你完成了

如果您使用Gradle作为构build工具,并且在执行Gradle任务(例如TomcatRun)时遇到此错误,请查看我对于同一问题的其他答案

javac:无效的目标版本:1.8

对于有这个问题的Gradle用户,如果上面没有任何帮助,这是什么解决了我的问题 – 在build.gradle文件中应用这个声明:

 targetCompatibility = 1.6 //or 1.7;1.8 and so on sourceCompatibility = 1.6 //or 1.7;1.8 and so on 

问题解决了!

通过设置“ Project Structure可以简单地解决这个问题。 您只需要为相关版本的JDKselect正确的path。 select依赖关系选项卡上的new ,然后selectpath。 完成!

在这里输入图像说明

Andreas Lundgren的答案奏效了,我能够编译和运行我的应用程序。

但是,当我试图运行项目的关联JUnittesting时,我收到了同样的错误。 运行

 gradle -version 

从Windows命令提示符显示,gradle仍在拾取不正确的jdk。 要解决这个问题,我必须设置JAVA_HOME环境variables来指向正确的jdk并重新启动IntelliJ。

pom.xml中将1.6更改为1.8

 <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> 

对于Grails用户,在BuildConfig.groovy文件中应用这些声明:

 grails.project.target.level = 1.6 //or 1.7;1.8 and so on grails.project.source.level = 1.6 //or 1.7;1.8 and so on 

您需要点击工程打开模块设置,然后更改JDK的path,如果在使用jdk 1.8的文件POM中,使用正确的pathconfigurationjdk 1.8。