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>