この環境ではコンパイラは提供されていません。おそらく、JDKではなくJREで実行していますか?


633

私はm2eclipseを使用してEclipseでプロジェクトをコンパイルしています。EclipseでJDKパスを次のように設定しました。

Windows-->preferences-->installed jres--> jdk1.7.xx  path

しかし、これはエラーを示しています

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE    rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-   plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

1
どうやってコンパイルを始めますか?コマンドライン?Eclipseツール?
Joeri Hendrickx 2013

Eclipseツールから実行構成を実行->目標:クリーンインストール
Sai prateek 2013年


7
ねえ、このエラーはMavenがJDKを取得しようとしているために発生していますが、EclipseではJREを指しています。JDKへのパスを変更することができ、それは動作します。learn-automation.com/…
Mukesh otwani

私はこれをリンクを投稿しているので、将来誰かが私と同じように恩恵を受けることができます。stackoverflow.com/a/33873838/4525120
神聖な

回答:


983
  1. Eclipse IDEで、[ ウィンドウ] > [ 設定] > [ Java ] > [ インストール済みのJRE ]に移動し、インストール済みのJREを確認します。そこにJDKのエントリが必要です。
  2. 以下に示すように、実行環境を選択します。OKをクリックします
  3. 次に、プロジェクトを右クリックします-> Maven- > Update Project

さらに、Maven JRE(@ jlars62の回答を参照)を次のように変更する必要がある場合があります。実行->実行構成に移動し、(左側のパネルから)実行していたMavenビルドを選択します。次に、[JRE]タブをクリックし、[Workspace default JRE]オプションを選択しました

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


15
@jaipsterこれを試みましたが、左側のパネルでjdkが見つかりませんでした。jre7しか表示されません。なぜなのかご存知ですか?
diyoda_ 2014

4
マシンにjdk7がインストールされていないか、Eclipseで設定されていない可能性があります。確認できますか?
jaipster 14

52
@ダイオード同じ問題がありました。「Installed JREs」に移動して「Add ...」をクリックしました。そこからC:\ Program Files \ Java \ jdk1.7.0_XXを参照して、説明されているjaipsterとしてjreを選択しました。
jlunavtgrad 2015年

7
私にとっては、JDKを「インストールされたJRE」のリスト(最適な名前ではない)に追加し、新しいJDKエントリの横にあるチェックボックスをチェックしてデフォルトのVMにするだけで十分でした。
トム・フィンク

7
「Installed JREs」メニューの「Search」ボタンをクリックしました。Eclipseは私が指定したドライブを1つ検索し、インストールされているすべてのJREとJDKを取得しました。
Mitra Boy、

141

私にとって、それは日食の魔術師が不平を言うものです

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

そこで、Editボタンを押してパスをJDKフォルダーに変更し、プロジェクトをクリーンアップすると、すべてが機能し始めます


3
「追加」ボタンを使用してJREを追加してから、JREエントリを操作してJDKエントリになることをお勧めします。JDKを追加したら、JDKエントリの横にあるチェックボックスをクリックします。これにより、この投稿で説明されている問題は既に解決されているはずです。
Tom Fink

3
変なの 。ダイアログのタイトルが示すように、これInstalled JREsはjdkフォルダーの代わりに配置する必要があるためです。しかし、それは本当に私の問題を解決しました。ありがとう
Joe.wang 2016年

これは、タイトルがのJREをインストールされているが、パスはJDKですが、とにかく、それは感謝の作品weiredだ
Abhijitチャクラを

JDKを追加した後、JREを削除することをお勧めします。Eclipseは時々JREを使い続けます-なぜこれが当てはまるのか分かりません。JDKを唯一の使用可能なオプションにすることは役立ちます。:)
leftbit 2018年

128
  1. JAVA_HOME環境変数をJDKルートフォルダーに設定します-コマンドラインまたはmaven(mvn。)。
    • JAVA_HOME詳細については、googleで検索してください)
  2. セクションJavaコンパイラのプロジェクトプロパティで、必要なJDKを選択します(Eclipseから直接実行する場合)

なぜステップ1が必要なのですか?
Duncan Jones

2
@DuncanJones、最初はコマンドラインまたはmavenを実行する場合に必要です(この変数はgoogle)、2番目-日食から直接実行する場合
msangel

1
その情報を回答に追加します。それ以外の場合は、すべての場合に両方が必要であることを示唆しています。
Duncan Jones

10
有料JAVA_HOMEがないことを注意ませんが「ビン」で終わりますが、ポイントルート JDKの。
koppor

Eclipseのjre設定を使用しないため、リリースプラグインにこれ​​が必要でした(外部のmavenインストールを使用)...
Rob

124

私にとっては、pom.xmlにこの変更を加えるまで何も機能しませんでした。

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

その他の注意事項

m2eがJDKではなくJREで実行されていることがわかりました。これをeclipse.iniに追加するなど、これを変更したことはありません。

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

結局、m2eをJDKで実行することはできませんでしたが、Javaコンパイラを(上記のように)明示的に設定することでうまくいきました。


10
プロジェクト自体が現在の開発マシンに結合するように変更されるため、このソリューションは最後の手段として実装する必要があります。
Xtreme Biker

@ksnortumありがとう!これが私にとってそれを機能させた唯一のものです。
アントニーフエンテスアルタヴィア2017

ここのLinuxの人々はどうですか?
logicbloke 2017

実行可能ファイルが/ path / to / java / bin / javacになることを除いて、ほとんど同じだと思います。Javaパスを見つけるために 'which java`を試してみてください。
ksnortum 2017

41

私の場合、これを行うことで解決しました:

「ランタイム構成」に移動し、JREをJDKに構成します。

ランタイムに適したJDKを選択する

デフォルトのJREを選択

なんらかの理由で削除された場合に備えて回答をコピーしましたが、出典はこちらです


これでうまくいきました。代替JREドロップダウンにJDKが表示されない場合は、インストール済みのJREを追加し(JDKがインストールされているフォルダーに移動)、JDKフォルダーを選択する必要があります。
Atul、

これは私の問題でした、あなたの答えは解決しました。
Amr Afifi

38

Eclipse内からMavenビルドを実行しようとすると、このエラーが発生しました。

私にとって、答えはRun-> に行きRun ConfigurationsMaven Build私が実行していた(左パネルから)を選択しました。次に、JREタブをクリックしてオプションを選択しましたWorkspace default JRE


1
これは、上記で選択した回答に加えて確認する必要があるようです。
nsandersen 2015

1
他のプロジェクトのデフォルトのJavaバージョンを変更するわけではないので、このソリューションの方が好きです。
Gonen I

30

Windows-> Preferences-> Java-> Installed JREsに移動します

jreはすでに追加されている可能性があります ここに画像の説明を入力してください

[追加]-> [標準VM]-> [次へ]-> [ディレクトリ]をクリックします

私のケースパスでJDKを参照しました C:\Program Files\Java\jdk1.8.0_111

次に、完了をクリックします。

このようなウィンドウが表示されますここに画像の説明を入力してください

JDK-> Apply-> Okを選択します

そして、あなたは終わりました。


1
JDKパスを共有していただきありがとうございます。最初からJREしか表示していないのに、JDKをクリックする別のオプションを選択できるように思えました。指定したパスからJDKを追加しました。
In-young Choung 2017

19

同じ問題が発生し、環境変数に追加JAVA_HOMEするだけです

環境変数

  • 日食を使用している場合は、参照してください https://stackoverflow.com/a/21279068/6097074をください。
  • intellijを使用している場合はJAVA_HOME、プロジェクトディレクトリからopenコマンドプロンプトを追加して実行した直後mvn clean install(intellij端末は使用しないでください)。

14

上記のすべてを試しましたが、それでも同じエラーメッセージが表示されます。

私の場合、実際のJREは、プロジェクト固有のビルドパスでJREシステムライブラリとして誤って使用されました。

その場合は、次のことを試してください。

  1. Javaビルドパスのプロジェクト固有のライブラリを開きます。「プロジェクト>ビルドパス>ビルドパスの構成...」を右クリックし、「ライブラリ」タブを選択します。
  2. 「JREシステムライブラリ」エントリを選択し、「削除」をクリックします。
  3. 「ライブラリを追加...」をクリックします。
  4. ウィザードがポップアップします。「JREシステムライブラリ」を選択し、「次へ>」をクリックします。
  5. 次に、正しいJDKを選択します(私の場合は、JDKを使用して構成した「Workspace default JRE」)。
  6. 「完了」をクリックしてウィザードを閉じます。
  7. 「OK」をクリックして「プロパティ」ダイアログを閉じます。

1
私は@ishuによって言及された上記のすべてのオプションを試しましたが、それでもorg.apache.maven.lifecycle.LifecycleExecutionException:目標org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(default-compile)の実行に失敗しましたプロジェクトhibernateTest1の場合:コンパイルが失敗し、解決策を試しましたが、エラーに変更はありません...助けてください。
Namrata Choudhary

<build> <sourceDirectory>flockWebclient</sourceDirectory> <resources> <resource> <directory>resources</directory> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>pom.xmlに追加
Alekya

11

jaipsterの回答が機能しない場合の代替策は、次の場所に移動することです。
ウィンドウ」>「設定」>「Java」>「インストールされているJRE」

次に、jreを編集して、jreではなくjdkを指すようにします(jreパッケージエディタでファイルされるjreホーム)。

それでうまくいきました。


それは私にとってそれでした。おかしいのは、デフォルトのJREが誤ってJDKを指しているというエラーが時々発生することです。
Salsero69、2016

私のために働いた、私はmavenクリーンインストールコンパイルを行いたい
asifaftab87

10

Mavenからコマンドを実行している場合は、コマンドをcmd実行する前にjdkパスを設定してください。私の場合、.bat以下を含むファイルを作成しました。

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"

8

を使用してプロジェクトアプリケーションのjarファイルを作成しようとしたときに、同じ問題に直面しました mvn clean installが、Eclipseから実行しているときにアプリケーションは正常に動作していました。

問題は、実に素朴すぎるため、JAVA_HOME環境変数を設定していなかったことです。私がしなければならなかったのは、JAVA_HOME環境変数をJDKディレクトリに設定することだけです。"\ bin"まででなく、セミコロン ";"がないことを確認してください

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

私がそれを理解した方法は次のとおりです:

JREシステムライブラリ内部の JREを参照していたため、アプリケーションはEclipseで正常に動作しました JDKのない外部JREフォルダーではなく、JDKフォルダーの。[他の回答で非常によく説明されているように]

この構成は、コマンドプロンプトで実行するmavenコマンドには適用されません。それでもJREシステムライブラリにアクセスするためにJAVA_HOME変数を探し、見つからない場合はJDKのない外部JREフォルダーを参照します。


6

指定するいくつかのオプションがあります。

手順:プロジェクトエクスプローラーでプロジェクトを右クリックします。実行->実行構成-> Mavenビルド->ビルド構成をクリックするか、新しい構成を作成します。以下のスナップショットとしてウィンドウが表示されます。そこでJREタブをクリックします。

3つのオプションがあることがわかります。1)ワークスペースのデフォルトJRE 2)実行環境3)代替JRE ここに画像の説明を入力してください 1)ワークスペースのデフォルトJREは、上部の[ウィンドウ]メニューから設定します-> [設定]-> [Java]-> [インストールされたJRE]-ここで、 jdk ここに画像の説明を入力してください 2)実行環境jdkは、@ ksnortumで言及されているようにpom.xmlで設定できます。

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <fork>true</fork>
            <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
        </configuration>
    </plugin>
</plugins>

3)代替JREを使用して、ディレクトリからjdkを選択できます


5

私にとって、JREはJDKパスの前のPATH環境変数にありました

  1. C:\ ProgramData \ Oracle \ Java \ javapath
  2. C:\ env \ jdk1.8.0_151 \ bin

だから私は1を削除しました。おそらくそれらを交換すると、それも修正されるでしょう。


5

私の答えは、Windows環境のEclipseに関するものです。

[設定]-> [Java]-> [インストールされているJRE]に移動しましたが、ここにJDKが表示されませんでした。ここではJREだけを見ました。そこで、JDKを追加してから、JREをオフにしました。次に、JDKを確認しました。次に、実行構成を使用してPOMファイルを実行しました。[JRE]タブを選択し、[ワークスペースのデフォルト...]オプションを選択します。ここに画像があります

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

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


5

問題ステートメント =この環境ではコンパイラは提供されていません。おそらく、JDKではなくJREで実行していますか?intellij

解決

この問題を解決するには、以下のように環境変数を設定してください

変数名:JAVA_HOME

変数値:C:\ Program Files \ Java \ jdk1.8.0_202

変数名:M2_HOME

変数値:C:\ Program Files \ apache-maven-3.6.0

さらに、以下のように「システム変数」にJavaとmavenパスを追加します。

  1. C:\ Program Files \ Java \ jdk1.8.0_202 \ bin

  2. C:\ Program Files \ apache-maven-3.6.0 \ bin


3

この質問には別の答えが考えられます。私がこれに出くわしただけの愚か者は私だけかもしれませんが、他の答えはどれも適用されていないため、追加する価値はあると思います。

JDKをインストールすると、インストーラーはファイルをインストールする場所を尋ねてきます。デフォルトでは、Windowsでは、これはC:\ Program Files \ Java \ jdk1.8.0_74(またはインストールするバージョン)のようなものです。

次に、JREをインストールするディレクトリを要求します。デフォルトでは、C:\ Program Files \ Java \ jre1.8.0_74のようなディレクトリです。

1つはjdk 1.8.0_74で、もう1つはjre 1.8.0_74であることに注意してください

私は急いでいて、インストーラーが同じ質問を2回尋ねていると思い、JDKとJREの両方のインストール場所をD:\ devtools \ jdk \ jdk1.8.0_74に設定すると、インストーラーはJREでJDKを上書きしました。これにより、(とりわけ)JDK binでjavac.exeが欠落し、OPがすべてのMavenビルドでここで報告したのと同じエラーが発生しました。


3

私は解決策を得ました。

この問題の最も一般的な解決策は、変更することで、JDKの場所を私としてインストール済みのJREの代わりに、JREの場所が、この1時間の私の問題を解決しませんでした。

だから私は問題を解決するために以下を行いました。[ インストールされたJRE ]タブを展開すると、[ 実行環境 ]タブが表示されます。

お気に入りの実行環境をクリックします。私の場合はJAVASE-1.8でした。そこには2つのオプションが表示されます。JDKおよびJRE。そこでJDKを選択すると、問題が解決します。

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


2

私はそれがうまくいくまで何とかこの問題で3時間を無駄にしました。mvn compileコマンドを発行すると、Eclipseターミナルで次のエラーが発生しました。

この環境ではコンパイラは提供されていません。おそらく、JDKではなくJREで実行していますか?

そこで、JAVA_HOMEという新しいシステム変数を作成し、それをjdkインストールフォルダーに向ける必要があることをここで読みました。しかし、これは別のエラーを生成しました:

ソースオプション1.5はサポートされなくなりました。1.6以降を使用

これの修正が見つからなかったので...

したがって、すべてをなくすための修正は、Java SE Development Kit 8をインストールすることです! 私は9を使用していました

とにかく...

  1. コンピュータからすべてのJavaバージョンをアンインストールします
  2. ここからJDK8をインストールします:http ://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. 次に、JAVA_HOMEシステム環境値を定義します-ここのチュートリアル:https : //docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. Eclipseを再起動してお楽しみください!(少なくともそれが私がしたことです)

これが少しの迷惑な放浪者を救うことを願っています。


2

私の場合、システム変数パスに「C:\ ProgramData \ Oracle \ Java \ javapath」の場所がありました。

「C:\ ProgramData \ Oracle \ Java \ javapath」の場所はjava、javawはそこだけです。したがって、同じエラーが発生します。

「C:\ ProgramData \ Oracle \ Java \ javapath」フォルダ内のすべてのファイルを削除すると、エラーが解決しました。


2

答えのほとんどを試してみましたが、成功しませんでした。私のために働いたのは(https://stackoverflow.com/a/21279068/2408893をフォローした後)でした:

  • プロジェクトを右クリック->プロパティ
  • Javaビルドパスを選択
  • JREシステムライブラリを選択します
  • 編集をクリックします
  • 実行環境でjdkを選択します

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

  • 完了をクリックします
  • ビルドして実行

2

質問はEclipseセットアップのエラーに関するものですが、このエラーを修正することで答えを考えましたIntelliJ Windows 10のセットアップも役立つかもしれません。

。行きますFile- > Settings- > Build, Execution, Deployment- > Build Tools- > Maven- >Importing

。以下のように設定JDKImporterJAVA_HOME

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

また、環境変数->システム変数でパスJAVA_HOMEに設定し、パスシステム変数にJDK追加する%JAVA_HOME%\bin必要もあります。


1

私は同じ問題に直面しました、私が犯した間違いは、jdkパスではなく、パスvarにのみjreパスを追加したことです.jdkパスがパスに追加され、Mavenプロジェクトを完全に機能するようにビルドしたとき。



1

これを試して。

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable> path to jdk \bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>


1

Javaがすでにインストールされている新しいEC2 ubuntu 16.04インスタンスを作成したときに同じエラーが発生しました。mvnclean packageの実行中にこの問題が発生し、以下の解決策がうまくいきました。

Ubuntuサーバーで作業している場合は、Javaのインストールを再試行できます。そのためには、この回答を使用できます。UbuntuLinuxにJDKをインストールする方法


1

Windows 7-64ビットでは、権限の問題があり、インストーラーがファイルC:\ Program Files \ Java \ jdk1.6.xx \ lib \ tools.jarをローカルに解凍できません。このjarファイルは、maven-compiler-pluginバージョン3.xが通常のjavacの代わりに使用するものです

解決策:管理者としてJava JDKインストーラーを実行してください!tools.jarがC:\ Program Files \ Java \ jdk1.6.xx \ lib \にあることを確認してください

m2e maven統合プラグインを使用している場合、Eclipse内の次の手順で、ファイルがEclipseに表示されることを確認する必要があります。

[ウィンドウ]-> [設定]-> [Java]-> [インストールされているJRE]に移動します。使用しているJDKを選択します(C:\ Program Files \ Java \ jdk1.6.xx)[編集]をクリックして、tools.jarを含むjarのリストを表示します。外部JARとして追加します。次に、以下の手順でMavenを構成します。

実行->実行構成->名前、ベースディレクトリ、および目標を入力します。次に、同じウィンドウで[JRE]タブに移動し、JDK \ jdk1.6.xx \をポイントします


0

上記の回答に加えて、ターミナル(Eclipseの外部)からMavenを実行してみてください。このようにして、外部からビルドしたがEclipseではビルドしなかった場合、問題はEclipseにあるはずであることを理解できます。


0

この質問にはいくつかの回答がありますが、すべてJDKの正しいパス構成に関連していますが、JREでのみこの問題を解決できます。

デプロイメントアセンブリを使用して、Java EEプロジェクトのパッケージ化されたwarファイルのパスを設定し、maven-installを再実行するだけです。

デプロイメントアセンブリを利用する手順:

  1. Jave EEプロジェクトを右クリック->プロパティをクリック->デプロイメントアセンブリをクリック

  2. [追加]ボタンをクリックします->ファイルシステムの[アーカイブ]をクリックします->次をクリックします-> [追加]をクリックします-> .m2 \ respositoryディレクトリに移動して、生成されたwarファイルを検索します-> warファイルを選択します-> [開く]ボタンをクリックします-> [適用]をクリックします-> OK

  3. プロジェクトを右クリック-> Run AsでMaven Installをクリック

これにより、コンパイラエラーなしでプロジェクトが正常にビルドされます。

これでJDKがなくても問題が解決することを願っています。

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