Gradle-プラットフォームをターゲットにできませんでした:「JavaSE8」ツールチェーンを使用:「JDK7(1.7)」


127

ローカルのGradleディストリビューションを使用してIntellijIdeaにGradleプロジェクトをインポートしようとしていますが、次のメッセージでスタックトレースを取得していますCould not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'。誰かが理由を説明してもらえますか?


どのJDKバージョンを使用していますか?graddleで定義されているものと同じものを使用してみてください
Elasticsearch Ninja

同じJDKへのパスをGradle(gradle.properties経由)とIdeaプロジェクト構造の両方に配置しました。それはあなたが意味したことですか?私は何かを逃しましたか?
Vasiliy Vlasov 2017年

うん、その後はうまくいった?
Elasticsearch Ninja 2017

1
残念だけど違う。
Vasiliy Vlasov 2017年

intelliJレベルのSDKを示すスクリーンショットを追加できますか?
Elasticsearch Ninja 2017

回答:


276

これは私のために働いたものです(Intellij Idea 2018.1.2):

1)次の場所に移動します:ファイル->設定->ビルド、実行、デプロイ->ビルドツール-> Gradle

2)Gradle JVM:バージョン1.8に変更

3)gradleタスクを再実行します


4
IntelliJ 2018.1.6(コミュニティエディション)にはそのようなオプションはありません
Kai

13
Macの場合、移動"IntelliJのアイデア"へ- > "環境設定" - > "ビルド、実行、展開" - > "ビルド・ツール" - > "のGradle"
Gubatron

2
私は再びこの問題に遭遇した...誰がどのくらい前に知っていたら、私はすでにそれをupvoted後... ++
beauXjames

59

IntelliJ 2019の場合:

Intellij IDEA->設定->ビルド、実行、デプロイ->ビルドツール-> Gradle-> Gradle JVM

正しいバージョンを選択してください。


33

IntelliJ 2019、JDK 13、およびgRPCの場合:

Intellij IDEA->設定->ビルド、実行、デプロイ->ビルドツール-> Gradle-> Gradle JVM

正しいバージョン選択します

build.gradleの依存関係に以下の行を追加する必要がある場合もあります

compileOnly group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'

25

最後に、Gradleプロジェクトをインポートしました。手順は次のとおりです。

  1. ローカルのGradleディストリビューションからIntellijIdea Gradleラッパー(gradle-2.14)に切り替えました。
  2. 私は、システム変数を指摘JAVA_HOMEするJDK 8私はGradleのラッパーがでプロジェクトを処理することができることを実験により考え出したとして(それは以前に第七だった)JDK 8のみ。
  3. 以前に手動で作成したファイルgradle.propertiesorg.gradle.java.home変数付き)をWindowsユーザーの.gradleディレクトリから削除しました。これは、Gradleに追加の値がもたらされなかったためです。

2
私のシステムではJAVA_HOME環境変数がJDK7に設定されていたため(実行echo $JAVA_HOMEしてチェック)、Eclipseでもこの問題が発生しました。JAVA_HOME=/path/to/jdk8 eclipseこの問題を軽減するために、JAVA_HOMEをシステム全体で変更するか、Eclipseを開始してください

7

いくつかのレガシーシステムのために、7つの互換性を持ついくつかのソースをコンパイルする必要があったので、同じ問題に遭遇しました。2つのオプションがjava8に設定されているgradle構成であることがわかりました

sourceCompatibility = 1.8
targetCompatibility = 1.8

これらを1.7に切り替えると、JAVA_HOMEがインストールされたJDK-7を指すようになり、問題が解決しました。

sourceCompatibility = 1.7
targetCompatibility = 1.7

2

以下は私のために働いた:

  1. IntelliJの右上隅に移動->アイコンをクリックします
  2. [プロジェクト構造]ウィンドウ-> [プロジェクトの選択]-> [プロジェクトSDK]で、正しいバージョンを選択します-> [適用]をクリックします-> [OK]をクリックします

2

私は非常に関連した問題を抱えていましたが、より高いJavaバージョンの場合:

$ ./gradlew clean assemble

... <other normal Gradle output>

Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.

InteliJを使用して実行すると、タスクが成功したことに気付きました。と呼ばれるファイル(build.gradleと同じレベル)を追加すると.java-version、私の問題は解決しました:

 # .java-version
 11.0.3


0

そして、他の回答から、それに対処する方法はいくつかあることがわかります。しかし、私はこれを信じていません。それは一方向に減らす必要があります。私はIDEが大好きですが、さまざまな回答から提供されたIDEの手順に従うと、これは基本的な代数ではないことがわかります。私のエラーは次のようになりました:

* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.

そしてそれを科学的に解決する方法は次のとおりです。

vi build.gradle

変更するには:

java {
    sourceCompatibility = JavaVersion.toVersion('11')
    targetCompatibility = JavaVersion.toVersion('11')
}

になる:

java {
    sourceCompatibility = JavaVersion.toVersion('8')
    targetCompatibility = JavaVersion.toVersion('8')
}

科学的方法は、議論の余地があり、共通の分母を扱う方法です。


0

この質問は特にIntelliJについて尋ねますが、これは私がGoogleで受け取った最初の結果であったため、多くのEclipseユーザーがBuildshipを使用して同じ問題を抱えている可能性があると思います。

EclipseでGradleJVMを設定するには、Gradleタスク(デフォルトビューでは、コンソールの近くの下部にあります)に移動し、実行しようとしている特定のタスクを右クリックして、[Gradle実行構成を開く...]をクリックします。 "そして[Javaホーム]タブに移動し、プロジェクトに適したJVMを選択します。

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