Пытаясь создать примеры проектов 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>
Ответ 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)
- Другая причина может заключаться в следующем: в родительском хранилище 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
Некоторые указатели, которые могут вам помочь:
Спасибо.
Ответ 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>