Buiding Hadoop с Eclipse / Maven - отсутствующий артефакт jdk.инструменты: jdk.инструменты: jar: 1.6


Я пытаюсь импортировать Cloudera в орг.апаш.hadoop: hadoop-клиент: 2.0.0-cdh4.0. 0из РЕПО cdh4 maven в проекте maven в Eclipse 3.81, плагин m2e, с JDK 1.7.0_05 oracle на win7 с помощью

<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:UsersMyUserId.m2repositoryjdktoolsjdk.tools.6jdk.tools-1.6.jar'

более конкретно, maven утверждает, что отсутствует следующий артефакт

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

как решить эту проблему?

12 68

12 ответов:

jdk.tools:jdk.tools (или com.sun:tools, или как вы его называете) - это файл JAR, который распространяется вместе с JDK. Обычно вы добавляете его в проекты 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>

проблема заключается в поддержке Eclipse Maven, связанный с этим вопрос здесь.

при затмении, то java.home переменная устанавливается в JRE, которая использовалась для запуска Eclipse, а не в JRE сборки. Система по умолчанию JRE от C:\Program Files не включает JDK так tools.jar не нашли.

чтобы устранить проблему, вам нужно запустить Eclipse с помощью JRE из JDK, добавив что-то вроде этого в eclipse.ini (до -vmargs!):

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

затем обновите зависимости Maven (Alt-F5) (просто обновление проекта недостаточно).

спасибо 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 сделал свое дело.

это сработало для меня:

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>

Если вы можете жить без инструментов.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>

возможно, система установит пакет jdk, но, возможно, некоторые инструменты разработки или плагин.

Я нахожу эту проблему под opensuse env. и я устанавливаю java-1_6_0-openjdk-devel

проблема устранена..

Я также столкнулся с этой проблемой, потому что я только что установил JRE не с JDK. Итак, добавление зависимости для jdk.инструменты не могу исправить для меня, потому что инструменты.банку не существовало у меня ${JAVA_HOME} / lib/.

теперь я скачал и установил JDK исправить.

измените набор установленных JRE в вашем eclipse. Окно > предпочтения > Ява > установленный jres измените расположение JRE и в %JAVA_HOME% / jre, но не что-то вроде C:\Program файлы\Java\jre7

Если jdk.инструменты есть в наличии .хранилище м2. Тем не менее вы получаете ошибку что-то вроде этого:

отсутствует артефакт: jdk.инструменты.....с.:../среда JRE./.

в пути сборки - > настроить путь сборки-- > библиотеки.Просто измените системную библиотеку JRE с JRE на JDK.

Я использую ниже моего мистера проекта.

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

попробуй :

mvn install: install-file-DgroupId=jdk.инструменты-DartifactId=jdk.инструменты -Dversion=1.6 -Dpackaging=банки -единственный способ иметь установленный="C:\Program файлы\Ява\с JDK\Либ\инструменты.банку"

также проверить : http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

ок, если вы используете ОС Windows

  1. перейти к C:\Program файлы\Java\jdk1. 8. 0_40\lib (версия jdk может отличаться для вас)

  2. убедитесь, что инструменты.jar присутствует (в противном случае загрузите его)

  3. скопируйте этот путь "C:\Program файлы\Java\jdk1.8. 0_40"

  4. в pom.xml

    <dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.8.0_40</version>
    <scope>system</scope>
    <systemPath>C:/Program Files/Java/jdk1.8.0_40/lib/tools.jar</systemPath>
    </dependency>
    
  5. перестроить и запустить! Бинго!