web-dev-qa-db-ja.com

1.6から1.7に移動した後、Jetbrains IntellijでJava 1.7を使用してコンパイルできません(Mavenベースのプロジェクト)

Mavenプロジェクトに基づいたJetbrains 11.2プロジェクトの使用。それから1.7に移行する必要がありました。 1.7をインストールし、pom.xmlを更新し、mavenを使用してパッケージ全体を再構築できます。

Javaバージョンに関するIntelli Projects設定で確認できるすべての設定を変更しました

  • プロジェクト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

これを機能させるために変更するものは他にありません。

24
Paul Taylor

ドー、見つけた

ファイル/設定/ Javaコンパイラ/追加のコマンドラインパラメータ

-target 1.6から-target 1.7に変更

しかし、関連する他のオプションから切り離されて、ここにあるのは奇妙に思えます。

38
Paul Taylor

私のために働いた代替ソリューションとして、モジュール設定言語レベルプロパティをチェックインすることです8.0 Lambdasに設定され、6.0 @Overrides in interfacesに変更され、その後、コンパイルはエラーなしで機能しました。

13
Gyuri Majercsik

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)
8
kiedysktos

IntelliJ 12では、File:Project Structureを開き、Project SDKを1.7に、Project言語レベルを「7.0-Diamonds、ARM、multi-catchなど」に更新することでこれを解決しました。

IntelliJをJDK 1.7で構成していない場合は、「新規」ボタンで追加します。タイプ「JDK」を選択します。

7
Heather92065

同じ問題が発生しました。私はIntellijでそれを解決しましたIDEA-> Preferences-> Compiler-> Java Compiler-> Project bytecode version-> 1.7&Target bytecode version-> 1.7

1
Yan

別の潜在的な修正方法は、ビルドファイルのバージョンがここで見られるようにハードコードされていることを確認することです

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

とは対照的に

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

これは、ビルドファイルで変数がどのように機能するかについての誤解が原因である可能性があります。あなたはこれが理にかなっていると思うでしょう

1
merlinpatt