24

使用基于 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

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

Error:javac: source release 1.7 requires target release 1.7

为了使其正常工作,我看不到任何其他要更改的内容。

4

6 回答 6

38

呵呵,找到了

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

-target 1.6更改为-target 1.7

不过,它在这里似乎很奇怪,与其他相关选项脱节。

于 2012-10-05T11:48:30.670 回答
13

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

于 2013-07-01T19:30:27.097 回答
9

IntelliJ 2017(也是 15 或 2016)

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

File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler

现在更改Target bytecode version为所需的。

IntelliJ 13 或 14

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

 Intellij IDEA -> Preferences -> Compiler -> Java Compiler
 -> Project bytecode version -> 1.7 (for example)
于 2014-10-24T10:56:45.240 回答
7

对于 IntelliJ 12,我通过打开文件:项目结构并将项目 SDK 更新为 1.7 并将项目语言级别更新为“7.0 - Diamonds、ARM、multi-catch 等”解决了这个问题。

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

于 2013-12-23T18:12:34.950 回答
1

另一个可能的解决方法是确保您的构建文件具有硬编码的版本,如此处所示

    <javac target="1.7" source="1.7" ... />

<property name="java.version" value="1.7" />
<javac target="${java.version}" source="${java.version}" ... />

虽然这可能是由于我对变量在构建文件中的工作方式有误解。你会认为这是有道理的

于 2013-10-10T20:50:08.467 回答
1

我遇到了同样的问题。我通过 Intellij IDEA -> Preferences -> Compiler -> Java Compiler -> Project bytecode version -> 1.7 & Target bytecode version -> 1.7 解决了它

于 2017-10-23T02:11:34.967 回答