web-dev-qa-db-ja.com

Java_HOMEとmavenの依存関係に関する奇妙な問題

プロジェクトでmavenパッケージを実行すると、Java_HOME変数がC:\Program Files\Java\jre6\に設定されているため、依存関係を解決できないことがわかります

[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (default) on project roo: Execution default of goal o
rg.codehaus.mojo:aspectj-maven-plugin:1.0:compile failed: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.0 or one of its dependencies
could not be resolved: Could not find artifact com.Sun:tools:jar:1.4.2 at specified path C:\Program Files\Java\jre6/../lib/tools.jar ->
[Help 1]

したがって、Java_HOMEは実際には実際よりも1レベル深いと想定しています。Mavenローカルリポジトリを調べたところ、log4j 1.2.16がこの依存関係を使用していることがわかりました。

Java_HOMEをC:\Program Files\Java\jre6\bin\のように見せようとしましたが、mavenが実行されず、Java_HOMEパスが間違っていると通知されました

14

Java JREだけでなくJavaDKも必要です。 Oracleで入手できますJavaページ

編集: Mavenプロパティガイド から:

${Java.home} specifies the path to the current JRE_HOME environment use with relative paths to get for example:
<jvm>${Java.home}../bin/Java.exe</jvm>

そして、例えばc:\jdkのJDKでは、maven $ {Java.home}がc:\jdk\jreを指しています。

16
moritz

これも助けになりました。

... Eclipseでは、インストールされているJREがJDKインストールを使用していることを確認する必要があります。

これは、設定オプションで...ウィンドウ/設定/ Java /インストールされたJRE ... JDKインストールをポイントする必要があることを意味します。

Jdk内のjreへのパスを変更する必要があります。 %Program Files%\ Java\jdk1.6.0_25\jre

8
Garry Taylor

Java.home変数は、プロジェクトpom.xmlからさらに派生させることができます。 Mavenコンパイラプラグインリファレンスを再確認します。ビルドしようとしたときに、javacが見つからないという同じ問題が発生しました。私のJava.home、Java_HOMEはすべて正しく設定されています。

FIXであることが判明したのは、pom.xmlを修正して、次の変更を加えた結果です。

            <!-- Original Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>${default.Java.version}</source>
                <target>${default.Java.version}</target>
                <showDeprecation>false</showDeprecation>
                <executable>${default.Java.home}/bin/javac</executable>
                <compilerVersion>${default.Java.version}</compilerVersion>
                <fork>true</fork>
            </configuration>

            <!-- MODIFIED Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>

                <!-- SPECIFY A DISCRETE VERSION!! Do not let it derive it! -->
                <source>1.6</source>
                <target>1.6</target>

                <!--
                  <showDeprecation>false</showDeprecation>
                  <executable>${default.Java.home}/bin/javac</executable>
                  <compilerVersion>${default.Java.version}</compilerVersion>
                  <fork>true</fork>
               -->
            </configuration>
2
eric manley

今日も同じ問題がありました。このWindowsのインストール(つまりフォルダ名)がドイツ語であるにもかかわらず、パスで「プログラムファイル」を使用する必要があることがわかりました。

このようなことが起こったのもこれが初めてではありません。

したがって、パスが正しいことが確実な場合は、ローカライズされた代替の代わりに「プログラムファイル」を試してください。私のために働いた。

1
LeShadow

ウィンドウ設定の変更に関する回答に少し情報を追加するだけです。 [〜#〜] jre [〜#〜]の場所をC:\Program Files\Java\jre7これは明らかな選択のように思えたからです。

ただし、これは失敗です。指摘された正しい答えはC:\Program Files\Java\jdk1.7.0_10\jre。これは間違いを犯しやすいので指摘しています。

1
user2071961

この問題はIntellij IDEA(IDEA 11.x〜Windows 7〜Java 7)でも発生します。 systempathプロパティの指定はIDEA jreを参照していました...

安定した解決策は、$ HOME/.m2/settings.xmlの下にローカルMavenプロファイルを作成することでした。

<profiles>
  <profile>
    <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
          <jdk>NUMERIC_VERSION</jdk>
        </activation>
        <properties>
          <Java.home>                   
            <!-- ABSOLUTE_PATH_HERE -->
          </Java.home> 
        </properties>
  </profile>
</profiles>
1
Eddie B

Mavenを実行するには-JDKを指すように環境変数Java_HOMEを設定する必要があります

例えばJava_HOME = C:\ Program Files\Java\jdk1.7.0_25

また、PATH環境変数に含まれるC:\ Program Files\Java\jdk1.7.0_25\binも必要です。

よろしく、ディパン

0
Dipan

Java -versionの入力中にコマンドプロンプトで適切な応答を確認できましたが、mvn -versionの入力中にこのエラーが発生しました。

私の場合、それは愚かな間違いでした。 Java_HOME環境変数が..\jdk\binフォルダーを指していたため、問題が発生していました。 Java_HOME変数の値からビンを削除した後、Mavenで作業することができました。

注:システム変数のパスには、JDKのbinフォルダーを指す値を含める必要があります。

よろしく、Balaji.K

0
kumara balaji

コマンドラインMavenプロジェクトのJava自動更新(Windows 7)の後にこの問題が発生しました(Eclipse内のmavenバージョンとは別の問題です)。JRE自動更新によりjreが削除されました私のシステムJava_HOME環境変数によってポイントされたJDKの下のフォルダー。jreが見つからなかったため、mavenは新しくインストールされたJREにデフォルト設定していました(まだ方法がわかりません)。JDKフォルダーの下にjreフォルダーを復元しましたシステムのPath変数の先頭に追加されたC:\ ProgramData\Oracle\Java\javapathへの参照を削除すると、mavenビルドは通常に戻ります。

0
ddjonline

Javaライブラリがプロジェクトのクラスパスにあることを確認してください。プロジェクトのプロパティ-> Javaビルドパス->ライブラリタブに移動します。jdkライブラリがリストされているかどうかを確認します。追加されていない場合は、これを追加してください。このようなエラーの原因にもなります。

0
rst

同様の問題がありましたが、答えは簡単です。

mavenは、私がJavaパスをパス変数に書き込んだことに気付くまで、Java_HOME変数を見つけることができませんでした。 。 "は、Java_HOMEという名前の新しい変数を作成することでした。たぶんそれはダミーの失敗ですが、実現するのに1時間かかりました...

0
locobinary

私は同様の問題に直面しました、以下は問題を解決しました:

Java_HOME = C:\Program Files\Java\jdk
M2_HOME= C:\Program Files\Apache-maven

inside path = ....%Java_HOME%\bin;%M2_HOME%\bin;

これで問題は解決しました。

0
Naveen

JavaプログラムのJDKが必要です。必要なツールはJDK(Java Development Kit)でのみ配布されるためです。JRE(Javaランタイム環境)は、 a Javaプログラム。

0
Salandur

Java環境変数を設定する適切な方法は次のとおりです:-

  1. Java_HOMEを「jdkフォルダ」\ jreに設定します
  2. 「jdkフォルダー」\ binをPATHユーザー環境変数に追加します。

Java_HOMEは、JRE\binフォルダから取得する必要がある「Java.exe」の場所です。 PATHは、JDK\binフォルダーから取得する必要があるjavac.exeを探すことです。

これにより、JDKとJREの互換性も確保されます

0
codingscientist

Java_HOME env変数をいじることなく、ここでそれを修正することができました。

1.6.x jdkをインストールします。

インストールされているJREのEclipse/Preferencesで、JDKのエントリを追加してデフォルトにします(場所をJDKフォルダーに設定します(例:C:\ Program Files\Java\jdk1.6.0_34)。

プロパティを編集し、システムライブラリリストにJDK_HOME/lib/tools.jarを追加します。

または、jdkがインストールされていると想定して、JDK/lib/tools.jarを既存のデフォルトJREのシステムライブラリリストに追加できます。

0
Vivek