IntelliJ IDEA 13使用Java 1.5,尽pipe设置为1.7

尽pipe在所有项目设置(包括File -> Project Structure -> Project :: Project SDK )中都指定了JDK 1.7,当试图编译一些简单的使用菱形运算符的Java 7代码时, IntelliJ 13会产生以下错误:

 java: diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator) 

在configuration中是否有其他地方需要启用期望的-source 7选项?

如果没有什么可以帮助(我的情况),你可以在你的pom.xml中设置它,如下所示:

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

正如这个很酷的家伙在这里提到: https : //stackoverflow.com/a/25888116/1643465

请检查您的项目/模块语言级别(项目结构|项目;项目结构|模块|模块名称|来源)。 您可能还想看看设置| 编译器| Java编译器| 按模块字节码版本。

也设置这个:

文件 – >项目结构 – >模块::源(旁边的path和依赖),并有一个“语言水平”选项,这也需要正确设置。

[适用于IntelliJ IDEA 2016.2]

我想用彼得格罗莫夫的答案部分的最新截图扩大。 具体来说这个特定部分

您可能还想看看设置| 编译器| Java编译器| 按模块字节码版本。

我相信(至less在2016年2月):检查git不同提交重置为1.5。

按模块字节码版本

或者,您可以将maven-compiler-plugin应用到适当的java版本,方法是将其添加到您的pom.xml中:

 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> 

文件 – >项目结构 – >项目设置 – >项目 – >项目语言级别

文件 – >项目结构 – >项目设置 – >模块 – >语言级别

使用下拉菜单更改级别

首先,您需要在“ File > Settings ,“ Compiler > Java Compiler ”下更改“项目字节码版本”

其次,做一个完整的重build。

我尝试修改Intellij IDEA,如下所示:

1。

 File >> Settings >> Build, Execution, Deployment >> Compiler >> Java Compiler >> project bytecode version: 1.8 >> Per-module bytecode version: 1.8 

2。

 File >> Project Structure >> Project Settings >> Project >> SDK : 1.8, Project Language : 8 - Lambdas File >> Project Structure >> Project Settings >> Modules >> abc : Language level: 8 - Lambdas 

但没有任何工作,只要我保存它恢复到Java 1.5的版本。

但是,在根(项目级别)下面添加pom.xml使我解决了上面的问题:(这两个选项都适用于我)

选项1:

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

选项2:

 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> 

在您的命令行(Unixterminal)转到您的项目根文件夹,然后执行此操作

 find . -type f -name '*.iml' -exec sed -i '' s/JDK_1_5/JDK_1_8/g {} + 

这会将所有项目.iml文件中的语言级属性从java 1.5更改为java 1.8。

我有同样的问题,但情况不同。 我可以在命令行( mvn clean install )中使用maven进行编译,但是在Intellij中,尽pipe我已经用java设置了maven-compiler-plugin,但我始终得到"java: diamond operator is not supported in -source 1.5"编译错误1.8在pom.xml中。

事实certificate,我有我的maven的settings.xml中的项目依赖远程存储库设置,但Intellij使用他自己的maven,与我的本地maven没有相同的设置。

所以我的解决scheme是改变Intellij的maven设置( Settings -> Build, execution, Deployment -> Maven -> Maven home directory )以使用本地maven。

在2017年的IntelliJ我有以下属性为我工作

  <properties> <java.version>1.8</java.version> </properties>