Ошибка сборки: отсутствует артефакт com.sun: tools: jar: 1.6 - PullRequest
12 голосов
/ 01 января 2012

Пытаясь построить образцы проектов PlayN, я получаю:

Missing artifact com.sun:tools:jar:1.6  pom.xml /playn-cute line 6  Maven Dependency Problem

На каждом pom.xml файле.Как мне ее решить?

Редактировать :

Я добавил узел профилей в pom.xml, но ошибка остается.Я проверил tools.jar на самом деле существует, и это не так.Поэтому я добавил tools.jar в папку lib.И все же ошибка остается.

Полный pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.googlecode.playn</groupId>
        <artifactId>playn-project</artifactId>
        <version>1.0.1</version>
    </parent>

    <artifactId>playn-cute</artifactId>
    <name>PlayN Cute Metaproject</name>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <playn.version>1.0.1</playn.version>
    </properties>

    <modules>
        <module>core</module>
        <module>java</module>
        <module>html</module>
        <!-- <module>flash</module> -->
        <module>android</module>
    </modules>

    <profiles>
        <profile>
            <id>default-tools.jar</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>Sun Microsystems Inc.</value>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                    <version>1.6</version>
                    <scope>system</scope>
                    <systemPath>${java.home}/../lib/tools.jar</systemPath>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>

Ответы [ 15 ]

20 голосов
/ 02 января 2012

Этот артефакт всегда обрабатывается как системная зависимость. Он никогда не хранится в репо.

Подробнее см. http://maven.apache.org/general.html#tools-jar-dependency.

если jar инструментов отсутствует, а вы не на Mac, вы пытаетесь использовать JRE, когда требованием является JDK. Вы не можете превратить одно в другое, копируя файл.

8 голосов
/ 18 января 2012

У меня была такая же проблема при использовании Eclipse в Windows 7, даже когда я удалил JRE из списка JRE в настройках Eclipse и просто имел JDK там.В вашем вопросе не указано, используете ли вы командную строку Maven или Eclipse, поэтому я подумал, что поделюсь с вами тем, что мне исправили в Eclipse.

Что мне в итоге пришлось сделать, так это изменитькомандная строка для ярлыка, который я использую для запуска Eclipse, чтобы добавить к нему аргумент -vm следующим образом:

-vm "T:\Program Files\Java\jdk1.6.0_26\bin"

Конечно, вы должны настроить его так, чтобы он указывал на каталог bin your JDK установить.Это приводит к тому, что сам Eclipse запускается с использованием JDK вместо JRE, а затем он может правильно найти tools.jar.

4 голосов
/ 17 октября 2014

Есть много причин, по которым вы можете увидеть эту ошибку в вашей IDE затмения

  1. Затмение указывает на JRE, а не на JDK
  2. Библиотека JDK, не содержащая tools.jar

Для этого вы можете захотеть добавить tools.jar самостоятельно через Настройки -> Java -> Установленный JRE -> (выберите JDK, отредактируйте и добавьте внешние jar -> перейдите к tools.jar)

  1. Другая причина может заключаться в следующем -> в репозитории родительского maven вашего проекта есть банка с таким же именем под каким-то другим артефактом.

Вам нужно найти tools.jar в представлении -> Зависимость Heirarchy для pom.xml в eclipse, и как только вы найдете jar, вы можете добавить туда исключение

нравится ->

<groupId>com.parent.project</groupId>
    <artifactId>parent-project-dependencies-pom</artifactId>
    <version>${dependencies.version}</version>
        <exclusions>
            <exclusion>
                <groupId>com.sun</groupId>
                <artifactId>tools</artifactId>
            </exclusion>
         </exclusions>
3 голосов
/ 11 марта 2012

Я тестирую на Ubuntu.Я не очень знаком с инструментами Java.Установка JDK решила проблему для меня.

aptitude install openjdk-6-jdk
2 голосов
/ 12 ноября 2014

Вам не нужно добавлять зависимость к вашему POM. У меня была эта проблема в затмении, и это было потому, что затмение работало в JRE, а не в JDK.

Смотрите этот вопрос здесь для того же вопроса: Отсутствует артефакт com.sun: tools: jar

Решено указанием использования vm eclipse. Также проверьте, что путь сборки вашего проекта Eclipse использует JDK, а не JRE.

Наличие JDK на пути сборки и явная установка JDK в INI затмения по-прежнему не работает, однако, если java на пути был jre, а не jdk (путь Windows или эквивалент Linux / Mac OS).

Запустите это из командной строки, чтобы увидеть, что такое Java на вашем пути: Как мне найти, где JDK установлен на моем компьютере с Windows?

Если это JRE, вы должны изменить его на JDK и перезапустить IDE.

2 голосов
/ 24 апреля 2013

У меня тоже была эта проблема, и хотя java_path был в порядке, проблема сохранялась. Исправление, которое работало для меня, было:

Запустите эту команду (, где Dfile указывает на ваш tools.jar ):

mvn install:install-file -DgroupId=com.sun -DartifactId=tools -Dversion=1.4.2 -Dpackaging=jar -Dfile="C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar"

Затем в основной файл pom.xml добавьте ссылку на зависимость:

<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.4.2</version>
</dependency>
1 голос
/ 01 января 2012

Некоторые указатели, которые могут вам помочь:

  1. Проверьте, присутствует ли tools.jar в URL репозитория в pom.xml.
  2. Проверьте зависимость в pom.xml. Это может быть неправильно. Я не нашел артефакт в банке в http://search.maven.org/#browse%7C96611365.

Спасибо.

0 голосов
/ 05 июня 2019

Я решил эту проблему, вручную добавив tools.jar из / jb моей инсталляции JDK в Eclipse JRE

Окно> Настройки> Установленные JRE> Изменить> Добавить внешние банки> выберите файл tools.jar для добавления

0 голосов
/ 07 марта 2019

Для меня проблема заключалась в том, что я установил JRE, но не JDK.Я знаю, что это странно, поскольку JRE должно работать, но это не так.С той же версией JDK все работает хорошо.Это окно Linux и не IDE.

0 голосов
/ 23 марта 2018

У меня была такая же проблема, это было из-за нескольких файлов tools.jar в пути.

Но проблема была специфична для зависимости pom рабочего пространства.Я узнал об этом, так как другие мои рабочие области в том же затмении работают нормально.

Шаги, которые я предпринял, чтобы исследовать и решить:

1) Открыть файл pom проекта

2) Перейдите в раздел Dependency Hierarchies в pom

3) В текстовое поле фильтра в верхнем правом углу введите имя tools.jar

4) Это покажет иерархию зависимостейфайла tools.jar.

5) В правой части Resolved Section выберите файл tools.jar и щелкните правой кнопкой мыши файл jar.

6) выберите исключениефайл.

Затем пересоберите проект.

...