web-dev-qa-db-ja.com

この環境ではコンパイラは提供されていません。おそらくあなたはJDKではなくJREで走っていますか?

私は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?
539
Sai prateek
  1. Eclipse IDEで、ウィンドウ> 設定> Java> インストール済みJRE>)に進んでください。 your installed JRE。そこにJDKのエントリがあるはずです。
  2. 以下のように実行環境を選択します。クリックOK
  3. それから右クリックあなたのプロジェクトで - > Maven - > プロジェクトの更新

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

enter image description here

842
jaipster

私にとって、それはまさにEclipseのメイバーが不満を言うものです

enter image description here

それで、私はEditボタンを押してJDKフォルダへのパスを変更し、それからプロジェクトをきれいにすれば全てが動き始めます

120
Thai Tran

私にとっては、この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コンパイラを明示的に(上記のように)設定することでうまくいきました。

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

Eclipse内からMavenビルドを行おうとしたときにこのエラーが発生しました。

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

34
jlars62

私の場合はこうすることで解決しました:

「実行時設定」に移動し、JREをJDKに設定します。

Select the right JDK for your Runtime

Select default JRE

何らかの理由で削除された場合に備えて、回答をコピーしましたが、ソースは here です。

33
Eduardo Dennis

「ウィンドウ」 - >「設定」 - >「Java」 - >「インストール済みJRE」の順に選択します。

すでに追加されているかもしれません enter image description here

追加 - >標準VM - >次へ - >ディレクトリの順にクリックします。

私のケースではJDKを参照してくださいパスはC:\Program Files\Java\jdk1.8.0_111でした

それからFinishをクリックします。

あなたはこのような窓が見えるでしょう enter image description here

「JDK」 - >「適用」 - >「OK」の順に選択します。

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

26
GauRang Omar

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

私の場合、実際のJREはプロジェクト固有のビルドパスでJREシステムライブラリとして誤って使用されていたため、ここで説明した他のすべての設定は明らかに上書きされていました。

そうであれば、次のことを試してください。

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

Jaipsterの答えがうまくいかない場合の代替策は、次のURLに移動することです。
ウィンドウ>設定> Java>インストール済みのJRE

次に、jreを編集してjreではなくjdkを指すようにします(jre homeはjreパッケージエディタにあります)。

それは私のために働いた。

9
brunoais

私は同じ問題を抱えていて、私はJava_HOME 環境変数 に追加するだけです。

env var

  • Eclipseを使用している場合は、 https://stackoverflow.com/a/21279068/6097074 を参照してください。
  • Intellijを使用している場合は、Java_HOME openコマンドをプロジェクトディレクトリから起動し、mvn clean installを実行した直後(intellijターミナルは使用しないでください)。
8
ankit

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

問題は、実に単純すぎて、Java_HOME環境変数を設定していなかったことです。 Java_HOME環境変数をJDKディレクトリに設定するだけで、 "\ bin"およびセミコロン「;」

enter image description here

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

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

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

7
Dhaval Simaria

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

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

手順:プロジェクトエクスプローラでプロジェクトを右クリックし、[実行] - > [実行構成] - > [Mavenビルド]をクリックします - >ビルド構成をクリックするか、新しい構成を作成します。あなたは下の与えられたスナップショットとして窓を見るでしょう、そこにJREタブをクリックしてください。

3つのオプションがあります1)ワークスペースのデフォルトJRE 2)実行環境3)代替JRE enter image description here 1)ワークスペースのデフォルトJREは上部の「ウィンドウ」メニューから設定されます - >設定 - > Java - >インストールされたJRE - ここであなたのjdkを追加することができます enter image description here 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を選択できます。

6
manntsheth

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

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

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

4
Florin D

私は解決策を得ました。

この問題に対する最も一般的な解決策は、jdk locationJRE locationではなくmy Installed JREsに変更することですが、解決しませんでした私の問題はこれが一度。

それで私は問題を解決するために以下をしました。 Installed JREsタブを展開すると、Executions environmentタブ)が表示されます。

お気に入りの実行環境をクリックしてください。私の場合はJAVASE-1.8。そこには2つのオプションがあります。JDKとJRE。そこにJDKと問題は解決しました。

enter image description here

3
Vero J

この質問に対するもう一つの可能​​な答えがあります、そして私はこれにつまずくほど十分に愚かな人かもしれませんが、私はそれらの設定がすでに正しいので他の答えのどれも適用されなかったので私はそれを加える価値があると思います。

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ビンにjavac.exeが欠落していたこと、およびOPがここで報告したのと同じエラーがすべての私のmavenビルドで発生したことをもたらします。

3
Sam

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

私はPreferences - > Java - > Installed JREsに行きました。ここにはJDKはありませんここでJREだけを見ました。そこで私はJDKを追加してからJREのチェックを外しました。それからJDKをチェックした。次に、実行構成を使用してPOMファイルを実行しました。タブJREを選択し、オプション "Workspace Default ..."を選択します。これが画像です

enter image description here

enter image description here

3

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

この環境ではコンパイラは提供されていません。おそらくあなたはJDKではなくJREで走っていますか?

だから私はここで私はJava_HOMEと呼ばれる新しいシステム変数を作り、それをjdkインストールフォルダの方に向ける必要があることを読んだ。しかし、これは別のエラーを生成しました:

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

これに対する修正が見つからなかったので...

それで、すべて解決するための修正は、Java SE Development Kit 8をインストールすることです。 私は9を使用していましたそれが最新のものであればそれが良くなければならない...

とにかく...

  1. コンピュータからすべてのJavaバージョンをアンインストールします。
  2. ここからJDK 8をインストールします。 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
JustNatural

私の場合は、システム変数パスに "C:¥ProgramData¥Oracle¥Java¥javapath"という場所がありました。

「C:¥ProgramData¥Oracle¥Java¥javapath」ロケーションのJavaでは、そこにのみjavawがあります。だから私は同じエラーを受けています。

"C:¥ProgramData¥Oracle¥Java¥javapath"フォルダ内のすべてのファイルを削除したら、エラーが解決しました。

2
Raja

問題のあるステートメント =この環境ではコンパイラは提供されていません。おそらくあなたはJDKではなくJREで走っていますか?インテリ

解決策

この問題を解決するには、以下のように Environment variabl eを設定してください。

変数名 :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

1
Navdeep Ghotra

Javaがすでにインストールされた状態で新しいEC2 ubuntu 16.04インスタンスを作成したときにmvn cleanパッケージを実行しているときに同じエラーが発生し、以下の解決策がうまくいきました。

Ubuntuサーバーで作業しているのであれば、Javaをもう一度インストールしてみることができます。そのためには、この答えを使用できます Ubuntu LinuxにJDKをインストールする方法

1
Ishan Ojha

これを試して。

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

私のために働いた、新しいJRE定義を(パスJDKを選択)を追加します。

http://help.Eclipse.org/neon/index.jsp?topic=%2Forg.Eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm

1
Lrodriguez84

私は同じ問題に直面した、私がした間違いは私はjdkのパスではなく、パスのvarにのみjreのパスを追加したことです。

1
Sapna

私は以下の変更をしました、そしてそれは私のために働きました。それが誰かに役立つことを願っています。  enter image description here

1
Kunal Khaire

私はほとんどの答えを成功せずに試した。私のために働いたのは(/の後に https://stackoverflow.com/a/21279068/2408893 ):

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

enter image description here

  • 完了をクリック
  • 構築して実行する
0
Emile Maras

質問はEclipseセットアップのエラーに関するものですが、IntelliJとWindows 10セットアップでこのエラーを修正する回答も役立つと思われます。

1File-> Settings-> Build, Execution, Deployment-> Build Tools-> Maven-> Importingに移動します

2JDKImporterを以下に示すようにJava_HOMEに設定します

enter image description here

また、環境変数->システム変数でJava_HOMEJDKパスに設定し、%Java_HOME%\binをパスシステム変数に追加する必要があります

0
Nafeez Quraishi

上記の回答に加えて、Mavenを端末から(Eclipseの外部で)実行してみてください。このように、それが外部からではなくEclipseで構築されていれば、問題はEclipseにあるべきであることを理解することができます。

0
Ad Infinitum

この質問に関していくつかの回答がありますが、すべてJDKのライトパス設定に関連していますが、JREだけでこの問題を解決できます。

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

展開アセンブリを利用する手順

  1. Jave EEプロジェクトを右クリック - >プロパティをクリック - > Deployment Assemblyをクリック

  2. 「追加」ボタンをクリックします - >「ファイルシステムからアーカイブをクリックする」 - >「次へ」をクリック - >「追加」をクリック - > .m2\respositoryディレクトリに移動し、生成されたwarファイルを検索 - > warファイルを選択 - > Openボタンをクリック - > Applyをクリック - > OK

  3. プロジェクトを右クリックし、Run Asの下のMaven Installをクリックします。

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

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

0
S Kumar

私はPreferences - > Java - > Installed JREsに行きました。ここにはJDKはありませんここでJREだけを見ました。そこで私はJDKを追加しました。

ここで、チェックを外すのではなく、JREを強制的に削除する必要があります。

0
Monika

あなたはどんなMavenビルドも見逃していますか。

上記のJREの変更とは別に、私はまだ同様の問題に直面していました。それがうまくいっていることを追加した後に私はJUnitの依存関係を逃していました。

これが役立つことを願っています。

0