在从1.6移动到1.7(基于maven的项目)后,无法在Jetbrains Intellij中使用Java 1.7进行编译

Pau*_*lor 24 java javac intellij-idea

使用基于Maven项目的Jetbrains 11.2项目.然后我需要移动到1.7.我安装了1.7,我更新了我的pom.xml,我可以使用maven重建整个包.

我已经修改了我在Intelli Projects设置中可以看到的有关Java版本的每个设置

  • 项目SDk
  • 项目语言水平
  • 模块语言/来源/语言水平
  • 模块语言/依赖关系/模块SDK

但我不能让它编译它抱怨的文件:

Error:javac target release of 1.6 conflicts with source release 1.7
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用相同的代码库,但使用不同的Intellij项目在我的另一台开发机器上,我得到了类似的错误:

Error:javac: source release 1.7 requires target release 1.7
Run Code Online (Sandbox Code Playgroud)

我无法看到任何其他改变,以使这项工作.

Pau*_*lor 38

Doh,找到了它

文件/设置/ Java编译器/附加命令行参数

-target 1.6更改为-target 1.7

虽然它与其他相关选项断开连接,但看起来很奇怪.

  • 从Maven导入时添加了这些选项. (2认同)

Gyu*_*sik 13

作为一种替代解决方案,为我工作是在检查模块设置语言级别属性.它被设置为8.0 Lambdas并更改为6.0 @Overrides in interfaces,之后编译工作没有错误.


kie*_*tos 8

IntelliJ 2017(也是15或2016)

您可以在此处更改编译器版本:

File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler
Run Code Online (Sandbox Code Playgroud)

现在换Target bytecode version到想要的.

IntelliJ 13或14

您可以在此处更改编译器版本:

 Intellij IDEA -> Preferences -> Compiler -> Java Compiler
 -> Project bytecode version -> 1.7 (for example)
Run Code Online (Sandbox Code Playgroud)


Hea*_*065 7

对于IntelliJ 12,我通过打开File:Project Structure并将Project SDK更新为1.7并将Project语言级别更新为"7.0 - Diamonds,ARM,multi-catch等"来解决此问题.

如果您没有使用JDK 1.7配置IntelliJ,请使用"新建"按钮添加它.选择"JDK"类型.