Maven не правильно выбирает JAVA_HOME

Я нахожусь в среде Windows и использую maven для компиляции моего проекта. Хотя я только что создал проект и добавил зависимости для разных libararies.

Когда я добавил их, maven начал жаловаться на отсутствующие tools.jar , поэтому я добавил ниже свой pom.xml :

  com.sun tools 1.6 system ${java.home}/../lib/tools.jar  

Когда я запустил установку maven, я получил ошибку для отсутствующей банки, как показано ниже:

 [ERROR] Failed to execute goal on project GApp: Could not resolve dependencies for project GApp:GApp:war:0.0.1-SNAPSHOT: Could not find artifact com.sun:tools:jar:1.6 at specified path C:\Program Files\Java\jre6\lib\tools.jar -> [Help 1] 

Проблема заключается в том, что tools.jar находится в « C:\Program Files\Java\jdk1.6.0_26\lib » и правильно установлен в переменной среды JAVA_HOME но maven все еще ищет папку jre, как в сообщении об ошибке « C:\Program Files\Java\jre6\lib\tools.jar “.

 C:\>echo %JAVA_HOME% C:\Program Files\Java\jdk1.6.0_26 

Интересно : когда я установил полный путь в зависимости, он работал отлично. Но я не хочу его жестко кодировать.

  com.sun tools 1.6 system C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar  

Может ли кто-нибудь предложить какое-нибудь динамическое решение для этого?

Это ошибка в поддержке Eclipse Maven. Eclipse не поддерживает все глобальные свойства Maven в соответствии с спецификациями Maven .

Согласно спецификациям:

$ {java.home} указывает путь к текущему использованию среды JRE_HOME с относительными путями, чтобы получить, например

По крайней мере, в Eclipse 4.3.1 это не так, здесь java.home всегда указывает на JRE, который использовался для запуска Eclipse , а не для сборки JRE.

Чтобы исправить проблему, вам нужно запустить Eclipse с помощью JRE из JDK, добавив что-то вроде этого в eclipse.ini ( до -vmargs !):

 -vm C://jre/bin/server/jvm.dll 

Вы НИКОГДА не должны использовать зависимости системы. Весь код в tools.jar будет доступен только через запущенную JVM. Вы должны полностью удалить эту зависимость ..

Также, чтобы проверить, какое время работы Maven использует только вызов

 mvn -v 

Если у вас все еще есть зависимость от инструментов jar как проблема, одна из зависимостей, которые вы добавили, имеет эту зависимость (и это действительно плохое качество). Чтобы узнать, какой из них выполняется

 mvn dependency:tree 

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

Затем, когда вы знаете, откуда оно взялось, вы можете решить, что делать дальше. Одним из путей было бы использование исключения для зависимости, в которую вставляются инструменты.

Кажется, ваш JAVA_HOME настроен на указание JRE в затмении.

Свойство Maven $ {java.home} устанавливается и берется из разных мест в зависимости от исполнения Eclipse:

  • от выбранного по умолчанию JRE для рабочей области

    Окно> Настройки> Java> Установленные JRE

  • от конкретного проекта Eclipse,

    Путь сборки Java> Библиотеки> Библиотека JRE

  • из конфигурации «Запуск».

    Run Configurations> Конкретная конфигурация запуска> JRE

Помните, что ваши домашние дорожки JRE указывают на JDK или JRE под JDK

Похоже, вы используете Maven в Eclipse. Eclipse не обращается к JAVA_HOME.

Убедитесь, что вы установили JRE в настройках Eclipse в желаемый JDK.

Когда вы добавляете переменную среды JAVA_HOME, если в пути есть пробелы, вы должны обернуть все это в кавычки.

Возможно, вы используете неправильную установку Maven. Переключитесь в окно> Настройки> Maven> Установки. У меня была установка на установку Fedora Maven; изменив его на значение по умолчанию (версия, встроенная в m2e), устранила проблему для меня.

Я подозреваю, что причиной этой проблемы является то, что установка Fedora Maven использовала OpenJDK от Fedora, что, вероятно, ставит tools.jar в странное место (все о OpenJDK от Fedora странно и нестандартно), поэтому Maven не может его найти.

  • Укажите JDK для Maven для использования
  • остановите IntelliJ IDEA для переключения уровня Java-уровня каждый раз, когда pom перезагружается (или меняет уровень языка проекта по умолчанию)
  • Maven - Зависит от собранного почтового индекса
  • Gradle build.gradle для Maven pom.xml
  • Maven: включение jar не найден в публичном репозитории
  • Interesting Posts

    varchar (max) везде?

    Как изменить выбранное значение выпадающего списка select2 с помощью JqGrid?

    Как сделать vim-пасту из (и скопировать в) буфер обмена системы?

    Можно ли исключить некоторые конкретные URL-адреса из внутри ?

    Проверить петли сверху или снизу? (while vs. do while)

    Почему Wireless NIC теряет свой лизинг на маршрутизатор?

    У кого-нибудь есть опыт работы с батареями для ноутбуков?

    Могу ли я изменить и обновить настройки BIOS просто из графического интерфейса Windows (кольцо 3)?

    Как проверить учетные записи Active Directory по протоколу LDAP + SSL?

    Не удается установить refind на Mac OS Sierra

    Найдено общие ссылки на коллекцию org.hibernate.HibernateException

    Разделение разделов на вопросы Windows 7

    Установленный установщик Inno Setup не показывает страницу «Выбрать место назначения» на некоторых системах

    как проверить, если заданная строка c ++ или char * содержит только цифры?

    Размер шрифта Bind в JavaFX?

    Давайте будем гением компьютера.