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

Отсутствующие инструменты-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

4b9b3361

Ответ 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 на самом деле не существовало по этой причине