web-dev-qa-db-ja.com

MavenでJavacコンパイラが見つかりません:

Warファイルを生成しようとすると、次のようなエラーが表示されます

[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar

echo %path%を実行すると

 C:\Windows\System32;D:\name\name1\Softwares\Maven\Apache-maven-3.0.4\b
in;C:\Program Files\Notepad++\;%JDK_HOME%

私がecho %JDK_HOME%をするとき

D:\name\name\core Java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin

私の環境変数がjdkであるときに、mavenがjreを参照している理由がわかりません。また、インストール済みのJREをjdk1.6に変更します。

73
BKK

Eclipseセットアップのみ

TODOには4つのステップがあります。

ステップ1:Eclipseプロジェクトのプロパティを右クリックします

ステップ2:Java Build Path-> Libraries

ステップ3:JREシステムライブラリを選択-> [編集]ボタンをクリック-> [インストール済みJRE ...]ボタンをクリック

ステップ4:JREをSet JRE Home = Java_HOMEとして編集する

ScreentShot:

enter image description here

150
Parthasarathy B

ウィンドウ->設定...-> Java->インストール済みのJREに移動します

JREホーム= Java_HOMEまたはJava_HOME\jreを編集します

たとえば、C:\ Program Filesにインストールされているjdk1.6.0_04を使用する場合、次の変更を行います。

C:\ Program Files\Java\jre7にあるデフォルトの代わりに、C:\ Program Files\Java\jdk1.6.0_04\jreまたはC:\ Program Files\Java\jdk1.6.0_04

35

同じ問題を抱えていましたが、私の場合、EclipseがJREを指しているディレクトリはJDKでした。だから、私はそのtools.jarを検索してそこにいました。

やった

  • Javaビルドパス>>ライブラリ
  • JRE System Lybrary >>編集
  • インストール済みのJRE >>私のjdkをクリック>>編集
  • 外部瓶を追加>> tools.jar

そして、コンパイルされた罰金

4
Hinotori

これはEclipseの問題でした。を使用してコマンドラインからビルドしようとしたとき

mvn package

うまくいきました。

3
BKK

JDK_HOME変数は、binディレクトリではなく、常にjdkのベースディレクトリを指す必要があります。

D:\name\name\core Java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04

定義された、あなたのパスを修正します

C:\Windows\System32;D:\name\name1\Softwares\Maven\Apache-maven-3.0.4\bin;C:\Program Files\Notepad++\;%JDK_HOME%\bin
3
Bruno Penteado

JUNITバージョンのために3.8.1があり、4.8.1に変更したため、同じエラーが発生しました。

だから解決策は

pOMに移動し、依存関係が次のようになっていることを確認する必要があります

 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.1</version>
  <scope>test</scope>
</dependency>
2
Ibo

JDK_HOMEがユーザー変数として定義され、PATHがシステム変数として定義されている、またはその逆-echo %PATH%には...;%JDK_HOME%のような未解決の変数を含めるべきではない.

パスを明示的に指定する必要がある場合でも、%JDK_HOME%\binパスがPATH変数上にあり、未解決であることを確認してください。

2
matt b

上記のすべての提案を試しましたが、うまくいきませんでしたが、私の場合はエラーを修正する方法を見つけました。

次の手順により、プロジェクトは正常にコンパイルされました。

プロジェクトエクスプローラで、プロジェクトを右クリックし、「プロパティ」を選択します。右側のツリーで、Javaビルドパスに移動します。 「ライブラリ」タブを選択します。 「ライブラリを追加」をクリックします。 JREシステムライブラリを選択します。次へをクリックします。ラジオボタンの代替JREを選択します。 「インストール済みのJRE」をクリックします。適切なバージョンのJREを選択します。 [適用]をクリックして閉じます。次の画面で、「終了」をクリックします。プロパティウィンドウで、[適用して閉じる]をクリックします。プロジェクトエクスプローラーで、pom.xmlを右クリックし、[別のユーザーとして実行]> [mavenビルド]を選択します。目標テキストボックスに「install」と入力します。実行をクリックします。

私の場合、これによりプロジェクトが正常にビルドされました。

1
FunkyFeudalFox

Mavenのバージョンに依存します。 Mavenの新しいバージョンをインストールする場合、このエラーは表示されません。 tools.jarファイルlib/tools.jarを使用して別のディレクトリを追加することもできます-この問題も解決します。

0
Bolek

次の手順を実行することで解決できます。

プロジェクトを右クリックし、ビルドパスを選択->ビルドパスを設定->ライブラリタブを選択-> JREシステムライブラリ[JavaSE-1.7のバージョン]を選択-> [編集]ボタンをクリック-> [JREシステムライブラリ]ウィンドウで実行環境を選択-ドロップダウンで、JavaSE-1.7にリストされているJDKを選択できます->この横にある[環境]ボタンをクリックします-> [実行環境]ウィンドウで、JavaSEのJava SEをもう一度選択する1.7->それを選択するだけで、Compatible JREsタブにオプションがあるので、私の場合はjdk1.7.0_25にしたいJDKを選択します。


[OK]をクリックし、適切なアクション[OK /完了]を実行して残りのウィンドウを終了します。

最後に、Maven CleanおよびMaven Installを実行します。

0
Indrajeet Gour

Eclipseについて言及していないこの質問に対するEclipse以外の回答がいくつかありますが、パス変数の変更が必要です。別の方法は、コマンドラインオプションJava.homeを使用することです。例:

mvn package -Djava.home="C:\Program Files\Java\jdk1.8.0_161\jre"

最後の\ jreに注目してください-驚くべき必要性。

0
Colin McRae

私は同様の問題に遭遇しましたが、私のようなアプローチを誰も投稿していないので、ここに行きます。

起動する実行構成に移動します。
[JRE]タブを選択しました。そこで「ランタイムJRE」を調整すれば、準備は完了です。

0
Vogel612

混乱する可能性がある上記のすべての手順を実行している場合、問題はtools.jreが欠落しているだけなので、次の手順でtools.jreを追加するだけで問題は解決します。

ステップ1:EclipseでWindowsに移動->設定

ステップ2:Java->インストール済みのJRE(ダブルクリック)

ステップ3:「編集」ボタンをクリック->「外部JARを追加」をクリック

ステップ4:tools.jarパスを選択します

変更を適用すると正常に動作します。

ここにスクリーンショットがあります

0
Ravindra

現在の答えはどれもここで私を助けませんでした。私たちは次のようなものを得ていました:

[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:
    #.#.#:compile (default-compile) on project Streaming_Test: Compilation failure
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] /opt/Java/J7.0/../lib/tools.jar

これは、JavaインストールがJREインストールであると判断したために発生します。 JDKのものがあることを期待しています上記 JREサブディレクトリ、したがって、パスに../libがあります。 tools.jar$Java_HOME/lib/tools.jarではなく$Java_HOME/../lib/tools.jarにあります。

残念ながら、OSにJDKをインストールするオプションはありません(尋ねないでください)。これはオプションではありませんでした。 Maven pom.xmlに次を追加することで問題を修正しました。

  <plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <fork>true</fork>  <!-- not sure if this is also needed -->
      <executable>${Java_HOME}/bin/javac</executable>
      <!--        ^^^^^^^^^^^^^^^^^^^^^^ -->
    </configuration>
  </plugin>

実行可能ファイルを適切な場所にポイントすることで、少なくともコンパイルの失敗を乗り越えました。

0
Gray

Eclipseでは、Mavenプロジェクトのインポートや「ソースの更新」の呼び出しなどのアクションは、Eclipseが実行されているのと同じJVMで実行されます。そのJVMがJDKの一部ではないJREから来ている場合、Javaコンパイラー(tools.jar)はありません。

そのため、Eclipse内からMavenを起動するには、起動に使用されるJREもJDKから取得する必要があります。デフォルトでは、Eclipseは開始されたJREを登録しますが、これは上記のParthasarathyによる「ウィンドウ/設定…/ Java /インストールされたJRE」設定ページで設定できます。

または、pom.xmlでcompilerIdを指定して、MavenがJavaコードをコンパイルするときにJDKを検索しないようにすることもできます。

 <plugin>
  <artifactid>maven-compiler-plugin</artifactid>
  <configuration>
    <compilerid>Eclipse</compilerid>
  </configuration>
  <dependencies>
    <dependency>
      <groupid>org.codehaus.plexus</groupid>
      <artifactid>plexus-compiler-Eclipse</artifactid>
      <version>xxxx</version>
    </dependency>
  </dependencies>
</plugin>
0
san1deep2set3hi