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 ответов:
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
перейти к C:\Program файлы\Java\jdk1. 8. 0_40\lib (версия jdk может отличаться для вас)
убедитесь, что инструменты.jar присутствует (в противном случае загрузите его)
скопируйте этот путь "C:\Program файлы\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>
перестроить и запустить! Бинго!