Подтвердить что ты не робот

Ошибка сборки: отсутствует артефакт com.sun: tools: jar: 1.6

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

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

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

Edit

Я добавил профили node в 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>
4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

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

Вам нужно найти tools.jar через → Dependency Heirarchy view for pom.xml в eclipse, и как только вы найдете банку, вы можете добавить туда исключение.

like →

<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>

Ответ 4

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

aptitude install openjdk-6-jdk

Ответ 5

У меня также была эта проблема, и хотя 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>

Ответ 6

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

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

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

Наличие JDK в пути сборки и эксплицитная настройка JDK в eclipse INI все равно не работает, однако, если java на пути был jre, а не jdk (путь к Windows или linux/mac equivilent).

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

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

Ответ 7

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

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

Спасибо.

Ответ 8

вот как я это разрешил. пожалуйста, вставьте ниже строки в свой файл eclipse.ini.

-vm путь до java.exe(как показано ниже)

-vm C:/Program Files/Java/jdk1.7.0_60/bin/java

надеюсь, что это поможет.

Ответ 9

Вот как я решил эту проблему, используя Jboss Developer Studio 8.1.10:

Добавьте в свой jbdevstudio.ini файл, расположенный в: D:\Users\bertrand\jbdevstudio\studio эти две строки (до -vmargs):

-vm
C:\Program Files\Java\jdk1.7.0_79\bin

Ответ 10

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

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

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

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

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

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

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

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

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

Затем перестройте проект.

Ответ 11

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

Ответ 12

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

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

Ответ 13

Эта статья Apple Developer гласит:

tools.jar не существует. Классы, обычно расположенные здесь, вместо этого включены в classes.jar. Сценарии, которые полагаются на существование tools.jar, должны быть соответствующим образом переписаны.

Ответ 14

Мне пришлось изменить то, что у вас было:

<systemPath>${java.home}/../lib/tools.jar</systemPath>

к явному пути, используя JDK, а не JRE, как bmargulies, сказал:

 <systemPath>C:/Program Files/Java/jdk1.6.0_24/lib/tools.jar</systemPath>

Надеюсь, что это поможет.

Ответ 15

Добавьте этот dependecy в файл pom.xml.

В свойстве <systemPath> вы должны написать свой путь jdk lib.

<dependency>  
    <groupId>com.sun</groupId> 
    <artifactId>tools</artifactId>
    <version>1.4.2</version>
    <scope>system</scope>
    <systemPath>C:/Program Files/Java/jdk1.6.0_30/lib/tools.jar</systemPath>
</dependency>