web-dev-qa-db-ja.com

Eclipse / MavenでHadoopを構築する-不足しているアーティファクトjdk.tools:jdk.tools:jar:1.6

Clouderaのorg.Apache.hadoop:hadoop-client:2.0.0-cdh4.0.0from cdh4をインポートしようとしていますEclipse 3.81のmavenプロジェクトのmaven repo 、win7上のOracleのjdk 1.7.0_05を使用したm2eプラグイン

<dependency>
    <groupId>org.Apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.0.0-cdh4.0.0</version>
</dependency>

ただし、次のエラーが表示されます。

The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'

より具体的には、Mavenは次のアーティファクトが欠落していると述べています

Missing artifact jdk.tools:jdk.tools:jar:1.6

これを解決する方法は?

73
jvataman

jdk.tools:jdk.tools(またはcom.Sun:tools、または任意の名前)は、JDKで配布されるJARファイルです。通常、次のようにMavenプロジェクトに追加します。

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <scope>system</scope>
    <systemPath>${Java.home}/../lib/tools.jar</systemPath>
</dependency>

参照してください、 Maven FAQに依存関係を追加するためのtools.jar

または、次を使用してローカルリポジトリにtools.jarを手動でインストールできます。

mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar -DgeneratePom=true

そして、Clouderaが行ったようにそれを参照します:

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.6</version>
</dependency>
91
npe

問題はEclipse Mavenサポートにあり、関連する質問は here です。

Eclipseでは、Java.home変数はビルドJREではなく、Eclipseの起動に使用されたJREに設定されます。 C:\Program FilesのデフォルトのシステムJREにはJDKが含まれていないため、tools.jarが見つかりません。

この問題を解決するには、Eclipse.inibefore-vmargs!)に次のようなものを追加して、JDKからJREを使用してEclipseを起動する必要があります。

-vm
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll

次に、Mavenの依存関係(Alt-F5)を更新します(プロジェクトを更新するだけでは不十分です)。

101
rustyx

npeのおかげで、

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.7.0_05</version>
    <scope>system</scope>
    <systemPath>${Java_HOME}/lib/tools.jar</systemPath>
</dependency>

pom.xmlにトリックを行いました。

36
jvataman

Tools.jarがなくても、連鎖依存関係としてのみ含まれている場合は、問題のプロジェクトから除外できます。

<dependency>
    <groupId>org.Apache.ambari</groupId>
    <artifactId>ambari-metrics-common</artifactId>
    <version>2.1.0.0</version>
    <exclusions>
        <exclusion>
            <artifactId>jdk.tools</artifactId>
            <groupId>jdk.tools</groupId>
        </exclusion>
    </exclusions>
</dependency>
8
Adam LaStrange

これは私のために働いた:

dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.7.0_05</version>
    <scope>system</scope>
    <systemPath>${Java_HOME}/lib/tools.jar</systemPath>
</dependency>
6
Ravi Macha

私はMRプロジェクトで以下を使用しています。

<exclusions>
                <exclusion>
                    <artifactId>jdk.tools</artifactId>
                    <groupId>jdk.tools</groupId>
                </exclusion>
</exclusions>
1
Suman

試してください:

mvn install:install-file -DgroupId = jdk.tools -DartifactId = jdk.tools -Dversion = 1.6 -Dpackaging = jar -Dfile = "C:\ Program Files\Java\jdk\lib\tools.jar "

以下も確認してください: http://maven.Apache.org/guides/mini/guide-3rd-party-jars-local.html

0
Yogesh Borkhade

Jdk.toolsが.m2リポジトリに存在する場合。それでも、次のようなエラーが表示されます。

アーティファクトの欠落:jdk.tools ..... c:.../jre/..

Buildpath-> configure build path-> Libraries.JREシステムライブラリをJREからJDKに変更します。

0
Divya Rakshu

EclipseにインストールされているJREのセットを変更します。ウィンドウ>設定> Java>インストールされたJRE、jreの場所を%Java_HOME%/ jreに変更しますが、C:\ Program Files\Java\jre7のようなものは変更しません

0
Sondy Woo

多分システムはjdkパッケージをインストールしますが、多分いくつかの開発ツールまたはプラグインです。

この問題はopensuse envで見つかります。そして、Java-1_6_0-openjdk-develをインストールします

問題は消え去ります。

0
liuyang1

また、JREだけをインストールしたため、この問題に直面しましたJDK。したがって、jdk.toolsの依存関係を追加しても、tools.jarはmy$ {Java_HOME}/lib /ディレクトリに存在します。

今、私はそれを修正するために JDK をダウンロードしてインストールしました。

0
Cataclysm