Я пытаюсь импортировать cloudera org.apache.hadoop: hadoop-client: 2.0.0-cdh4.0.0 из cdh4 maven repo в проекте maven в eclipse 3.81, m2e plugin, с oracle jdk 1.7.0_05 на 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:\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
Как это решить?
Ответ 1
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>
Смотрите, FAQ Maven для добавления зависимостей к 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>
Ответ 2
Проблема в поддержке Eclipse Maven, связанный с ней вопрос здесь.
В Eclipse переменная 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) (просто обновление проекта недостаточно).
Ответ 3
благодаря 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>
to pom.xml сделал трюк.
Ответ 4
Это сработало для меня:
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>
Ответ 5
Если вы можете жить без 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>
Ответ 6
возможно, установите пакет jdk для установки, но, возможно, некоторые инструменты разработки или плагин.
Я нахожу эту проблему в openuse env.
и я устанавливаю java-1_6_0-openjdk-devel
проблема не исчезла.
Ответ 7
Я также столкнулся с этой проблемой, потому что я только установил JRE не с JDK. Таким образом, добавление зависимости для jdk.tools не может быть исправлено для меня, потому что tools.jar не существует в моем каталоге ${JAVA_HOME}/lib/.
Теперь я загрузил и установил JDK, чтобы исправить его.
Ответ 8
Измените набор установленных JRE в своем затмении.
Окно > Настройки > Java > Установленные JRE, измените местоположение jre
на% JAVA_HOME%/jre, но не что-то вроде C:\Program Files\Java\jre7
Ответ 9
Если jdk.tools присутствует в репозитории .m2. Тем не менее вы получаете ошибку примерно так:
отсутствует артефакт: jdk.tools..... c:.../jre/..
В пути buildpath → configure build → Libraries. Просто измените системную библиотеку JRE с JRE на JDK.
Ответ 10
Я использую ниже в моем проекте MR.
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
Ответ 11
попробуйте:
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
Ответ 12
Хорошо, если вы используете ОС Windows
-
Перейдите в папку C:\Program Files\Java\jdk1.8.0_40\lib
(версия jdk может отличаться для вас)
-
Удостоверьтесь, что tools.jar присутствует (в противном случае загрузите его)
-
Скопируйте этот путь "C:\Program Files\Java\jdk1.8.0_40"
-
В 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>
-
Восстановить и запустить! BINGO!