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に変更します。
Eclipseセットアップのみ
TODOには4つのステップがあります。
ステップ1:Eclipseプロジェクトのプロパティを右クリックします
ステップ2:Java Build Path-> Libraries
ステップ3:JREシステムライブラリを選択-> [編集]ボタンをクリック-> [インストール済みJRE ...]ボタンをクリック
ステップ4:JREをSet JRE Home = Java_HOMEとして編集する
ScreentShot:
ウィンドウ->設定...-> 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
同じ問題を抱えていましたが、私の場合、EclipseがJREを指しているディレクトリはJDKでした。だから、私はそのtools.jarを検索してそこにいました。
やった
そして、コンパイルされた罰金
これはEclipseの問題でした。を使用してコマンドラインからビルドしようとしたとき
mvn package
うまくいきました。
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
JUNITバージョンのために3.8.1があり、4.8.1に変更したため、同じエラーが発生しました。
だから解決策は
pOMに移動し、依存関係が次のようになっていることを確認する必要があります
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
JDK_HOME
がユーザー変数として定義され、PATH
がシステム変数として定義されている、またはその逆-echo %PATH%
には...;%JDK_HOME%
のような未解決の変数を含めるべきではない.
パスを明示的に指定する必要がある場合でも、%JDK_HOME%\bin
パスがPATH変数上にあり、未解決であることを確認してください。
上記のすべての提案を試しましたが、うまくいきませんでしたが、私の場合はエラーを修正する方法を見つけました。
次の手順により、プロジェクトは正常にコンパイルされました。
プロジェクトエクスプローラで、プロジェクトを右クリックし、「プロパティ」を選択します。右側のツリーで、Javaビルドパスに移動します。 「ライブラリ」タブを選択します。 「ライブラリを追加」をクリックします。 JREシステムライブラリを選択します。次へをクリックします。ラジオボタンの代替JREを選択します。 「インストール済みのJRE」をクリックします。適切なバージョンのJREを選択します。 [適用]をクリックして閉じます。次の画面で、「終了」をクリックします。プロパティウィンドウで、[適用して閉じる]をクリックします。プロジェクトエクスプローラーで、pom.xmlを右クリックし、[別のユーザーとして実行]> [mavenビルド]を選択します。目標テキストボックスに「install」と入力します。実行をクリックします。
私の場合、これによりプロジェクトが正常にビルドされました。
Mavenのバージョンに依存します。 Mavenの新しいバージョンをインストールする場合、このエラーは表示されません。 tools.jarファイルlib/tools.jarを使用して別のディレクトリを追加することもできます-この問題も解決します。
次の手順を実行することで解決できます。
プロジェクトを右クリックし、ビルドパスを選択->ビルドパスを設定->ライブラリタブを選択-> 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を実行します。
Eclipseについて言及していないこの質問に対するEclipse以外の回答がいくつかありますが、パス変数の変更が必要です。別の方法は、コマンドラインオプションJava.homeを使用することです。例:
mvn package -Djava.home="C:\Program Files\Java\jdk1.8.0_161\jre"
最後の\ jreに注目してください-驚くべき必要性。
私は同様の問題に遭遇しましたが、私のようなアプローチを誰も投稿していないので、ここに行きます。
起動する実行構成に移動します。
[JRE]タブを選択しました。そこで「ランタイムJRE」を調整すれば、準備は完了です。
混乱する可能性がある上記のすべての手順を実行している場合、問題はtools.jreが欠落しているだけなので、次の手順でtools.jreを追加するだけで問題は解決します。
ステップ1:EclipseでWindowsに移動->設定
ステップ2:Java->インストール済みのJRE(ダブルクリック)
ステップ3:「編集」ボタンをクリック->「外部JARを追加」をクリック
ステップ4:tools.jarパスを選択します
変更を適用すると正常に動作します。
現在の答えはどれもここで私を助けませんでした。私たちは次のようなものを得ていました:
[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>
実行可能ファイルを適切な場所にポイントすることで、少なくともコンパイルの失敗を乗り越えました。
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>