Java >> Java チュートリアル >  >> Java

IntelliJ ビルド エラー コンテキストの不一致

同様の問題を調査しているときにこの質問を見つけて解決したので、私の経験が役立つかもしれません.

観察

私の問題は、 Wanted という点であなたの問題に似ていました コンテキストには javaHome がありました IDEA インストール フォルダに埋め込まれた JRE へのパスとして、および Actual コンテキストは、私のパス上の最初のバージョンの Java としてそれを持っていました。オンラインで同様のエラー レポートをいくつか見つけましたが、Wanted として IDEA が埋め込まれた JRE はありませんでした。 バージョン。

Wanted Java バージョンはたまたま JRE のシステム全体のインストールであり、プロジェクト用に構成した JDK ではなく、JAVA_HOME に設定された値でもありませんでした。 、それは私を非常に疑わしくしました(そして混乱させました)。パスを並べ替えると、さらに別の「不要な」バージョンの Java が使用されたため、明らかにパスを使用して何を実行するかを選択していましたが、その理由は明確ではありませんでした。 IntelliJ の組み込み JRE を私の道の最初にすることはできませんでした。さまざまな理由でそれを JDK にする必要があったためです。別の解決策が必要でした。

また、(私は Windows を使用しているため、Process Explorer を使用して) 失敗した場合、IntelliJ が多数の java.exe を起動したことに気付きました。 Gradle デーモン プロセスを確認し、ビルドを開始する前にデーモン プロセスが実行されていなかったことを確認しました。

解決策

原因は、「実行/デバッグ構成」ダイアログで新しい構成を定義し、 build.gradle へのフルパスを配置したことが判明しました Gradle project: のファイル フィールド、次のとおりです。 (フィールドの右側にある省略記号 (...) ボタンをクリックしてこれを行いましたが、直接入力することもできました。)

ただし、私がすべきだったのは、Gradle project: が 次の画像で緑色で強調表示されているフィールドの右側にある「フォルダー」アイコンをクリックして、「登録済みプロジェクト」として指定されました。この場合、フィールドの内容は単なるプロジェクト名であり、微妙に異なる背景色/前景色で表示されます。 (この名前を右クリックすると、build.gradle を含むフォルダーへのパスに置き換えられることを偶然発見しました 、ただし、構成をキャンセルして再度編集を開始すると、プロジェクト名として表示されます。)

この変更を行った後、構成は期待どおりに構築され、java.exe が 1 つだけであることを確認しました UI の「Gradle」パネルからタスクを実行したときと同じ JDK パスを使用して起動されました。


idea.exe ではなく idea64.exe を使用して解決しました


<オール>
  • ファイル gradle.properties を作成 %USERPROFILE%\.gradle\ フォルダ内 (~/.gradle/ *nix マシン上)
  • このファイルに文字列 org.gradle.java.home={actual path to jdk} を追加します (MacOS でそれを知るには、/usr/libexec/java_home を実行します )

  • Java タグ