エラー:java:javacTask:ソースリリース8にはターゲットリリース1.8が必要です


889

IntelliJ IDEを使用すると、プロジェクトをコンパイルできません。以下の設定のスクリーンショット:

使用されているJDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

プロジェクトSDKと言語レベル:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

言語レベル:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

誰かアイデアはありますか?


1
これは「純粋なIntellij」のエラーのようには見えません。あなたはアリのビルドスクリプトか何かを使っていませんか?
fge 2015


回答:


1912
  1. ファイル>設定>ビルド、実行、配置>コンパイラ> Javaコンパイラ
  2. ターゲットのバイトコードのバージョンを、作業しているモジュールの1.8に変更します。

Mavenを使用している場合

コンパイラプラグインをpom.xml最上位projectノードの下に追加します。

<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>

(コメントから引き上げられました。)

注:プロジェクトを再インポートしてもかまわない場合は、pomを変更してプロジェクトを再インポートするだけで十分です。IntelliJが正しい設定を取得するので、手動で変更する必要はありません。


IntelliJ 14 Ultimateで動作します。
DtechNet 2015

古いIDEAバージョンでは、次のことを試してください。設定->コンパイラ-> Javaコンパイラ->モジュールごとのバイトコードバージョン
Jonik

88
あなたがMac上であれば、それはのIntelliJ IDEA>環境設定...>ビルド、実行、配備> Javaコンパイラの下だ
JPアームストロング

4
2016.2より新しいIntellijの場合、チェックする場所がもう1つありますProject Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK
Bruce Sun

1
3レベル以上のPOM階層があり、コンパイラプラグインが親POMで定義されている場合、IntelliJは最深レベルでそれを認識しない可能性があります。他の一部のモジュールでは、同じ親POMを拡張する場合でも、そうではないので、そうではないかもしれません。
ヤマネ2016


116

これは、コンパイラプラグインが正しく設定されていない場合にMavenが生成する種類のエラーのようです。これは、Java 8コンパイラー構成の例です。

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

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

<!-- ... -->

</project>

10
私のような他のMaven初心者の場合、これは、、そしての下projectにあるはずです。buildplugins
ダレン・ヘイル

4
また場合<source>1.8</source><target>1.8</target>構成され、上記のエラーが発生する可能性があります。
BuZZ-dEE、2015

1
これでうまくいきました。ありがとうございます。バージョンタグが解決されなかった(私のバージョンのMavenと一致するように変更した)ため、コメントアウトしました。その場合、Mavenはこのスレッドに基づいて、正しい最新バージョンを自動的にフェッチする必要があると思います:stackoverflow.com/questions/17239394/…
Boris

84

私が見つけた最も速い方法:

  • 押す:CTRL+ SHIFT+ A(Macの場合+ SHIFT+ A
  • タイプ: java compiler
  • 押す: ENTER

設定ウィンドウで、ターゲットバイトコードを1.8に設定します。

(java9の場合は9


3
これは私にとっては本当にうまくいきました(ありがとう!)しかし、なぜこれがpom.xml、モジュール設定などにあるものと異なるのか理解できません...
Adam Lehenbauer

1
pressを押して、設定を取得します。
X. Wang

31

この問題を解決するには2つの方法があります。

  1. 設定(File -> Settings -> Build, Execution, Deployment -> Java Compiler)ここに画像の説明を入力してください
  2. にビルドセクションを追加しますpom.xmlここに画像の説明を入力してください

18

Mavenに関する多くの答えは正しいですが、プラグインを直接設定する必要はありません。

Apache Mavenコンパイラプラグインのwikiページで説明されているように、プラグインで使用される2つのプロパティを設定するだけです。

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

1
@ Marvin Richter私はあなたの解決策を試しましたが、IntelliJでは動作しません-私の推測では、それは純粋なmavenビルド(コマンドライン)では正しいのですが、IntelliJはこれらのプロパティを無視します。他のソリューションで述べたように、プラグインを構成する必要がありました。
Benoit

1
いいえ、他のソリューションが機能したため、私はしませんでした。そして今、私は自分のプロジェクトをgradleに移行しました。
ブノワ

4
あなたがした後の魅力のように動作しますpom.xmlを右クリック-> Maven->再インポート。これは、Mavenユーザーにとって受け入れられる答えになるはずです。
ptkvsk 2017年

実際にorg.apache.maven.plugins:maven-compiler-pluginは、pomまたはgradleファイルにプラグインが必要です。ドキュメントの中で、そのプロパティをpomプロパティに設定するだけで十分です。基本的に、プラグインのデフォルト値が設定されるためです(例:<source> $ { maven.compiler.source} </ source>
EliuX 2017年

これは受け入れられる答えになるはずです。Intel li 2018.2 on mac os 10.13.5で私のために働いた
user674669

13

これを修正するには、プロジェクト構造 -> モジュールに移動し、問題のモジュールを見つけて、[ 依存関係 ]タブをクリックして、に変更Module SDKProject SDKます。


9

ターゲットのコンパイルバージョンを1.8に変更するだけで修正しました。入った:

ファイル>>設定>>ビルド、実行、配置>>コンパイラ>> Javaコンパイラ


1
ありがとう、ヴィシャル。Intellij Ideaでは、プロジェクトのバイトコードバージョン、または少なくともモジュールごとのバイトコードバージョンを指定する必要があります。maven-compiler-pluginのpom.xmlに設定するだけでは、問題は解決しませんでした。
WebComer 2016年


5

私の場合、プロジェクトの.imlファイル(プロジェクトのルートフォルダーにあり、名前がプロジェクトの名前と同じです)を開き、行<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" /><orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

ここでは他の回答と同様にすべてを構成しましたが、何らかの理由でIdeaが.imlファイルを誤って更新しました。


2
すべてのメニューを構成した場合でも、Intellijが構成ファイルを更新しない場合があります。キャッシュを無効にして再起動すると(構成ファイルを編集した後)、私にとってはうまくいきました。奇妙な。
2016

1
本当にありがとう。最後に、上で指定した他のすべてのソリューションを試して失敗した後、これはうまくいきました。
Nitin Bansal

4

POMファイルを変更して修正しました。最高投票数の回答の下の最後のコメントに注目してください。

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

ソースはターゲットと一致する必要があります。



3

Android-studio 1.3を使用している場合は、以下の手順に従ってください-

ファイルに移動- プロジェクト構造

下のモジュール - アプリ - [プロパティ ]タブ、選択した ソース互換の - 1.8

ターゲットの互換性 - 1.8

そして、あなたは行ってもいいです。


3

Gradleアプリレベルファイル>> compileOptionsに次の2行を追加します

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

ありがとう。あなたの答えはうまく
ソリューションスピリット

1

compiler.xmlファイルの下に、以下が見つかります。

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

ターゲット値を古いものから新しいものに変更できます。私は1.5から1.8に変更する必要がありました。


1

私は同じ問題に苦労しながらしばらく過ごしました。私のために働いた唯一のことは、ビルドされたmvn(3.3.9)を使用せず、外部にダウンロードされたバージョン(3.5.0)を指すことでした。ついにプロジェクトが始まり、すべてが良かった。


1

この問題は、モジュールがアノテーションプロセッサで構成されており、他のモジュールが構成されていない場合に発生します。循環依存になるため、すべてのモジュールに同じ構成を設定してください。


0

私にとっての問題は、Mavenが適切な構成を見つけられないことでした。これらのアイテムは親pomで指定されているためです。

ファイルの変更->設定->ビルド、実行、デプロイメント-> Maven->ユーザー設定ファイルを適切なリポジトリでカスタム設定に指定すると、他の方法で隠れていた問題が修正されました。

以前はタイトルにエラーがあり、コンソールに「java.lang.NullPointerException」しか表示されなかった場合、ヘルプ->エクスプローラーにログを表示->ログファイルをクリックして問題を見つけました。


0

問題の解決策は非常に簡単です。İdeaプロジェクトで.idea / compiler.xmlファイルを開いて、

適切なターゲットバージョンを作成する必要があります


0

IntelliJ、使用してMavenを、あなたはのIntelliJプロジェクトを自動的にインポートしていることを確認する必要があります。エディターの右側にあるMavenタブをクリックして確認できます。

ここに画像の説明を入力してください

プロジェクトがここにない場合はpom.xml、をクリックしてファイルを追加します+

明らかに、プロジェクトにも関連する必要があります<build/>

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

0

他の回答がどれも機能しない場合は、モジュールSDKを確認してください

プロジェクトSDKを1.8に、Javacコンパイラを1.8に更新した後、このエラーがポップアップ表示されました。私にとって問題だった設定は「モジュールSDK」でした。

(Linuxの場合)に移動しFile > Project Structure...、開いたウィンドウで、のModules下を選択しProject Settingsます。リストから問題のモジュールを選択し、次にDependenciesタブを選択して、Module SDK適切に設定されていることを確認します。


0

上記すべてを確認しましたが、まだエラーが発生します。

しかし、私の場合、すべてのMavenプロジェクトを再インポート(Mavenプロジェクトパネル内の再読み込みボタン)は機能します。


0

モジュールの依存関係を設定することを忘れないでください: ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.