Отсутствующие инструменты-1.6.jar с Eclipse и Maven
Я пытаюсь запустить проект с использованием Maven в Eclipse, но я получаю эту ошибку ниже. tools.jar
находится в папке JDK lib
, но tools-1.6.jar
, похоже, не существует на моем компьютере. Я использую JDK 1.7, а мой JAVA_HOME
указывает на эту папку (как и мой eclipse.ini
). Кто-нибудь знает, где я могу получить этот файл или что я могу сделать неправильно?
Контейнер 'Maven Dependencies' ссылается на не существующую библиотеку C:\Users\sejohnson\.m2\repository\com\sun\tools\1.6\tools-1.6.jar
Ответы
Ответ 1
Инструмент-x.y.z.jar должен быть предоставлен вашим JDK.
Убедитесь, что eclipse запускается JDK, а не JRE, добавив параметр -vm в eclipse.ini.
Например:
-vm
C:\Program Files\Java\jdk1.6.0_26\bin\javaw
Новая строка после -vm
имеет решающее значение.
он должен быть прямо над
-vmargs
См. также Проблема конфигурации плагина Eclipse Maven
Ответ 2
У меня была точно такая же проблема и в итоге добавлена следующая зависимость к файлу pom:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>${java.version}</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
Это устранило проблему и сделало tools.jar
доступным для плагина QueryDSL в моем проекте. Надеюсь это поможет. Обратите внимание: убедитесь, что JDK-версия используется вместо JRE.
Изменить: недавно отметили, что проблема возникла, когда я перешел на новую платформу dev, в моем случае это был Ubuntu 12.10. Исправление заключалось в том, чтобы добавить ${JAVA_HOME}/bin
в $PATH
Ответ 3
Возможно, ваше затмение по умолчанию не соответствует вашей 32-битной версии вашего jre. Если вы все сделаете правильно с JAVA_HOME, установленным в C:\Program Files\Java\jdk1.6.0_21\bin, и при запуске 32-разрядной версии eclipse вы в конечном итоге будете использовать что-то вроде C:\Program Files (x86)\Java\jre6\Bin.
после исправления проблемы с jdk
Вам нужно будет передать его в конце ярлыка
-vm "C:\Program Files (x86)\Java\jdk1.6.0_31\bin"
Или исправьте свой JAVA_HOME
Другие предложения заключались в том, чтобы убедиться, что ваше eclipse использует jdk not jre
http://gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx
Вы найдете другое сообщение, если будете искать tools.jar или играть в другой проект с этой общей проблемой зависимости maven.
Ответ 4
Можете ли вы проверить свой pom.xml на зависимости от инструментов? Хорошим источником является mvnrepository.com, наконец, ваш проект компилируется вне eclipse? Работает ли mvn clean compile
в окне или оболочке dos? Если возможно, вам просто нужно восстановить файлы проекта eclipse с помощью mvn eclipse:eclipse
, а затем обновить проект в eclipse
Ответ 5
tools.jar
не предоставляется в каком-либо публичном репозитории (как я знаю). Если ваш pom.xml
ссылается на файл в вашем локальном репозитории, вы должны установить его самостоятельно. Используемый вами pom.xml, по-видимому, ожидает, что кто-то создал/установил tools-1.6.jar в доступном репозитории Maven (например, менеджеру центрального сервера maven, например Nexus).
Если это не подходит для вас, попробуйте изменить зависимость, как описано в разделе Maven часто задаваемых вопросов.
Ответ 6
У меня была эта же проблема, и оказалось, что одна из зависимостей в моем POM файле транзитивно добавила зависимость к jdk.tools jar, который мне не нужен (и вызывал проблемы с плагином Eclipse Maven), Мое решение состояло в том, чтобы исключить его из проблемной зависимости вроде:
<dependency>
<groupId>it.unimi.di</groupId>
<artifactId>mg4j-big</artifactId>
<version>${mg4j-big.version}</version>
<exclusions>
<exclusion>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
</exclusion>
</exclusions>
</dependency>
Попробуйте найти зависимость, которая транзитно импортирует jdk.tools jar и просто исключает, как я сделал выше. Это должно решить вашу проблему.
Ответ 7
В дополнение ко всем вышеизложенным, которые могут означать разные шаги для диагностики проблемы и, в конечном итоге, обеспечить правильное решение, я сначала должен проверить в командной строке (что означает, вне среды выполнения Eclipse). Выполнение простой "mvn clean install" из командной строки даст вам следующее:
- Уверенность в том, что у вас правильно установлены исполняемые файлы Java (поскольку они используются по умолчанию для всех java-приложений, включая, конечно, eclipse,
- Уверенность в том, что ваша версия maven действительно разрешает инструменты *.jar с помощью адекватного предоставления JDK
Используя эти два факта, вы можете исключить проблемы при установке Java и уровнях установки Maven. Затем вы можете перейти к созданию Eclipse с теми же настройками, которые вы можете использовать (JAVA JDK HOME, MAVEN HOME) в командной строке, так как другие ответы выше объясняют с хорошей детализацией (в частности brimstedt's и josh's).
Ответ 8
Имея ту же проблему, мне пришлось вручную добавить tools.jar в eclipse:
Настройки → Java → Установленные JRE → Выбрать jre → Изменить → Добавить внешние JAR → Найти и выбрать tools.jar → Готово.
Теперь он работает.
Ответ 9
Вот еще один вариант, если у вас возникла эта проблема сборки. У меня была такая же проблема сборки, и я пробовал все вышеперечисленные предложения, и проблема все еще была там. Затем я заметил, что мой системный путь имел в качестве первого элемента следующий "C:\ProgramData\Oracle\Java\javapath".
Я не уверен, какая программа его установила. И когда я проверил папку, у нее были только ссылки (короткие сокращения). Я удалил это из системного пути, и ошибка сборки была решена. Надеюсь, это поможет кому-то еще в той же ситуации.
Ответ 10
Эхо @Гопал Рамакришнан. У меня была такая же проблема в env-пути (Windows OS). Он имеет "C:\ProgramData\Oracle\Java\javapath", в котором есть java.exe, таким образом воздействуя на фактический путь jdk при запуске eclipse. Просто удалите это, разрешив проблему. Я уверен, что "C:\ProgramData\Oracle\Java\javapath" было тихо добавлено разработчиком "sql" oracle...
Ответ 11
В моем случае оказалось, что у меня была эта зависимость в pom.xml
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
Однако JAVA_HOME был установлен при запуске Eclipse на JRE вместо JDK.
Так что tools.jar на самом деле не существовало по этой причине