web-dev-qa-db-ja.com

mavenビルドが失敗しました:Javacコンパイラが見つかりません:jreまたはjdkの問題

Java_HOMEを設定しています

C:\Program Files (x86)\Java\jdk1.6.0_18

Mavenインストールを実行した後、Eclipseから次のメッセージを受け取ります。

理由:

Unable to locate the Javac Compiler in:
  C:\Program Files (x86)\Java\jre6\..\lib\tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.Sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the Java_HOME environment variable.

これはトリッキーな部分だと確信しています

JREではなくJDK 1.4以上を使用していることを確認してください

JRE6への設定を実行するとき、すでにインストール済みのJDK 1.6に変更するにはどうすればよいですか

編集

私もプラグインを変更しようとしました:

<plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <executable>C:\Program Files (x86)\Java\jdk1.6.0_18\bin</executable>
                </configuration>
            </plugin>

それでも同じエラーが発生します

たぶん、Eclipse Mavenプラグインを使用することを忘れていました。EclipseでJREからJDKに変更するにはどうすればよいですか。

107

次のように、Eclipseが使用しているJDKを更新してみてください。

Window-> Preferences ...-> Java-> Installed JREsでJREを追加および設定します。

JRE type: Standard VM JRE 
Name: jdk1.6.0_18
JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18

そうでない場合は、Java_HOMEパスの角かっことスペースが問題を引き起こしている可能性があります。 JDKを別の場所にコピーして、Java_HOMEを更新してみてください。

138
lucrussell

Eclipse.iniには、jdkの場所を指すvm引数が必要です。

Eclipse.iniファイルを編集して、次のようにjdkホームをポイントします-

-vm
C:\Program Files\Java\jdk1.6.0_06

これにより、Eclipseはマシン上のデフォルトのJREではなく、JDKから実行されます。

19
Sai Hegde

試してみて:

Preferences/Java/Installed JREsに移動し、場所"C:\Program Files\Java\jdk1.6.0_27\jreなどに追加します。

C:\Program Files\Java\jre6の削除

ご覧のとおり、パスC:\Program Files\Java\jre6\..\lib\tools.jarは、最初の部分(/ ..まで)がC:\Program Files\Java\jdk1.6.0_27\jreで置き換えられている場合にのみ意味があります。

12
cuocdoibian1971

Forkをtrueに設定すると、問題が解決しました。

<configuration>
<fork>true</fork>
<source>1.6</source>
<target>1.6</target>
</configuration>

どうもありがとう、サム・ヤン

9
Prash

私はまったく同じ問題を抱えていました!ショートカートの引数としてini arに「-vm c:\ program files\Java\jdkxxxxx\binを置く」ことに関するすべてのせせらぎがAT ALL heklpでなかったため、日を検索および検索していました。 (イライラしたように聞こえますか?信じてください、それは控えめな表現です!Mavenを信頼できるものにするために1週間を失ったので、私は単に激怒しています!)

私は非常に予測不可能な行動をしました。コンパイルされることもあれば、コンパイルされないこともあります。 Mavenクリーンを実行すると、コンパイラが見つからず、失敗しました。その後、ビルドパスで何かを変更すると、突然再び機能しました!!

ウィンドウに行くまで->設定-> Java-> JREをインストールしました。 JDKの場所を使用して新しいJREを追加し、JREを削除しました。突然、Mavenが安定しました!

たぶん、これはApacheのマニュアルにフォントサイズ30程度の文字を入れる価値があるのでしょうか?当然のことながら、これはJavaコミュニティにとってはとんでもないことです!この種の問題を解決しようとして、これらすべての人々によって何日が失われたか想像できません!これが最終バージョンとしてリリースされることはおそらく想像できません。私は個人的にベータソフトウェアという名前でそのようなものをリリースすることを敢えてしません...

どちらの方法でもよろしいです...改ざんの一週間後、私は最終的に開発を開始することができます。上司がこのことを知らないことを願っています。 .NETに行かないように彼を説得するのに多くの努力が必要でしたが、それについてはすでに申し訳ありません。

8
Lorenzo

EclipseでRun as-> Maven installを使用しても同じ問題が発生しました。 Java_HOMEとEclipse.iniは問題なく、私の最新のJDKを指しています。しかし、m2clipseはJREを使用しました。 Eclipseの外でmvn installを使用するとうまくいきました!私の場合、次のように問題を解決しました。1. Eclipseでナビゲートします:ウィンドウ->設定-> Java->インストール済みJRE 2. JREとJDKの2つの非アクティブエントリがありました。アクティブなものは、最新のインストール済みJDKでした。 1つのMavenが使用する必要があるすべてのエントリを削除します。

Mavenはアクティブなアカウントを考慮しないと思います...

3
Markus

Maven 3.0.4をインストールし、それに応じてM2_HOMEM2Java_HOMEを設定しました。次に、次のコマンドを実行しました。

mvn archetype:generate....

mvn compile

maven unable to locate javac compilerなどの失敗メッセージが表示されました。

私のコンピューターでは、c:\ program files\Java\jre.1.6にデフォルトのjreインストールがあります。そして、他のc:\ Java\jdk1.6Java_HOMEがこれに設定されていますc:\ Java\jdk1.6

設定に問題はありません。検索後、mvn.batを調べることにしました。すべてのステップで%Java_HOME%をエコーし​​、C:\Java\jdk1.6として正しく表示されますが、コマンドmvn --versionを実行すると、Java home:c:\ program files\Java\jre1.1.6

最後に、次のコマンドのように-Djava.home=c:\Java\jdk1.6を設定するだけで、すぐに正常に動作することがわかりました。

%MAVEN_Java_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Djava.home=%Java_HOME%" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%

お役に立てれば。

注:これは、コマンドラインでのmvn用であり、Eclipseでは使用しません。

3
smngo

http://maven.Apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html に基づいて、フォークをtrueに設定する必要がありますpom.xml。

2
Sam Yang

Eclipseセットアップのみ

次の手順を実行します。

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

  2. Javaビルドパス->ライブラリ

  3. JREシステムライブラリを選択-> [編集]ボタンをクリック

  4. 「インストール済みのJRE ...」ボタンをクリックします

  5. 次のようにJREを編集します:JRE Home = Java_HOMEまたはJava_HOME\jreを設定します

ScreentShot:

enter image description here

どうもありがとう、

パルタ

2
Parthasarathy B

MavenはJDKではなくJREを使用しているようです。 JDKをインストールする前にMavenをインストールしたのでしょうか?

設定ファイル を確認してください。システム、ユーザー、およびプロジェクトの合計3つがあります。ほとんどの場合、インストール構成($ M2_HOME/conf/settings.xml)またはユーザーごとの構成($ {user.dir} /。m2/settings.xml)にあります。

2
Devon_C_Miller

Installed JREの場所をJDK自体に存在するディレクトリに変更することで問題を解決しました。 Java_HOME環境変数の適切な値を設定しても、問題は解決しませんでした。

私の場合、2つのディレクトリがあります

  • C:\Program Files\Java\jdk1.7.0_03 --> For JDK

  • C:\Program Files\Java\jre7 --> For JRE

最初にC:\Program Files\Java\jre7をEclipseのインストール済みJREとして設定しましたが、Mavenの場合に同じエラーが発生していました(Antは正常に機能していました)。

Eclipseでインストール済みJREをインストール済みJREとしてC:\Program Files\Java\jdk1.7.0_03\jre7に変更することにより、問題は解決します。

2
Nikhil

解決策は簡単です。Eclipseウィンドウ->設定-> Java-> C:\Program files\Java\jreを指すJREをインストールし、C:\Program files\Java\JDK 6.0\jreに変更すると、100%動作する場合があります。

1
santhosh

プロジェクト->プロパティ-> Java Build Pathを右クリックします。 [JREシステムパス]-> [編集]を選択します。ワークスペースのデフォルトJREを選択し、JDK> 1.4をポイントします

1
asHIS

Window -> Preferences -> Java -> installed JREs -> Execution Enviroments -> click the checkbox on the right side

1
Gambotic

私の場合、Eclipse Run-> Debug Configurationsで、jreタブでjreではなくjdkを選択すると問題が解決しました。

特定のEclipse構成からプロジェクトを実行している場合、「実行構成」->「Maven構成」->「JREタブ」内でJavaランタイムを変更する必要があることを忘れないでください適切なJDKをEclipse設定に追加します。

1
Ivan Fernandez

Amazon Linuxでも同じ問題が発生しました。開発版のjdkをインストールする必要がありました。

Sudo yum -y install Java-1.7.0-openjdk-devel

1
Evan Siroky

Eclipse Window-> Preferences ...-> Java-> Installed JREは、JREではなく、インストールしたJDKを指している必要があります。

1
Sudipto

他のいくつかの人が述べたように、Eclipse Window->Preferences...->Java->Installed JREsJDKを指し、notを指す必要がありますJRE。エラーメッセージに記載されている../libフォルダーを見つけることができます。

これでも、問題が再発する可能性があります。 Eclipse(Juno)での私の方法は、Maven -> Update project...を実行した後、問題がなくなることです。

理由は、Eclipseで生成されたファイル(.classpath、.project、.preferences)の一部が、これらの問題が発生しているプロジェクトのSubversionにあるためと思われます。したがって、svnの更新により問題が発生し、Eclipseのmavenからの構成の更新により再び解決されます。

実際のソリューション:バージョン管理からEclipseが生成した.filesを省略します(追加のポインタ/提案を歓迎)

1
avandeursen

Maven-compiler-pluginの構成を変更して、値がtrueの実行可能ファイルとフォークを追加しました。

            <configuration>
                <fork>true</fork>
                <source>1.6</source>
                <target>1.6</target>
                <executable>C:\Program Files\Java\jdk1.6.0_18\bin\javac</executable>
            </configuration>

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

0
Soumyajit Swain

Eclipse> Preferences> Java> Installed JREsに移動し、ポイントしたjreの場所を選択して、Edit> Add External JARsをクリックし、tools.jarを選択します。

0
Dipendra Gurung

Echo %Java_HOME%を行います
その後mvn --version

JREパスは同じである必要があります。..Window -> preferences - Java - installed jre'sに移動します
場所は、Java_Homeが表示している場所と同じでなければなりません。

0
vandana

Eclipse.iniの「-vm」が2行に分かれていることを確認してください。

-vm
C:\Program Files\Java\jdk1.6.0_06
0
Kevin Van Dyck

同じ問題がありました。上記のいずれも機能しませんでしたが、これは私のために機能しました:

Java_HOMEを...\jdk.1.8.0 \から...\jdk.1.8.0\jre \に変更しました

0
Coen Damen

Java_HOMEを設定しても問題が解決しない場合は、次を試してください。 (私は新しくインストールしたPCで同じ問題を抱えていました。)

Eclipseを使用していると仮定します。

  • ウィンドウを開く-設定-Java-インストールされているjreですべてを削除し、使用したいものを追加します(JDK、JREはありません!)
  • 同じウィンドウでmaven-installationsを開き、ダウンロードして解凍したmaveインストールをどこかに追加します。 (組み込みのMavenインストールは使用しないでください。いくつかの既知のバグがあります)

それで全部です。あなたのプロジェクトはオランダの問題に悩まされることはありません。希望が役立ちます。

0
Marcell

他の多くの回答では、EclipseをJREではなくJDKにポイントするように指示されています。

ここに、より具体的/明確な別の回答があります[ここでの回答で見たよりも]それを行う方法のステップバイステップ:- JDKのインストール方法

これは、この同じ問題について私が解決したことです。

0
cellepo

プロジェクトを右クリックして、プロパティに移動します。

リンクされたリソースで、Java_HOMEという新しいパスを追加し、jdkの場所を配置します(「C:\ Program Files\Java\jdk1.8.0_73」など)。

それで全部です!!

0
Macu Gómez

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

だから解決策は

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

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

この問題の解決策は非常に簡単です。

ANTビルドファイルがない場合は、生成します。 Eclipseでは、ANTファイルを簡単に作成できます。

リンクを参照して作成ANTビルドファイル[ http://www.codejava.net/ides/Eclipse/how- to-create-ant-build-file-for-existing-Java-project-in-Eclipse]

次に、指定された手順に従います。

1)ANTビルドファイルをビューウィンドウにあるANTビューに追加します。

2)ANTビルドファイルを右クリックして、Run Asおよびその「Ant Build」の2番目のオプション。

3)ダイアログボックスが開き、さまざまなオプションとタブが表示されます。

4)JREタブを選択します。

5)3つのラジオボタンが表示され、オプションとしてJREまたはJDKが選択されます。

6)ラジオボタンオプションにJREが選択されている場合は慎重に見てから、_ jdk _に変更します

7)適用をクリックします。

それでおしまい...!!!

0
Nishat Lakhani

Java_HOMEmvn.ini(mavenフォルダー/binにあります)を指定する必要があります。そうすれば、問題は解消されます。

0
Javicha

また、Eclipseに更新されたすべての変更があることを確認することもできます。これを行うには、プロジェクトを右クリックし、[更新]メニュー項目を押します。

0
GregNash

コンパイラの場所は、Java_HOMEが指しているjdkの場所ではなく、表示されるjreの場所にあるコンパイラプラグインのpomで定義されていると思います。

0
Robin