странная проблема с зависимостями JAVA_HOME и maven - PullRequest
14 голосов
/ 19 марта 2011

У меня для переменной JAVA_HOME установлено значение C:\Program Files\Java\jre6\, когда я запускаю пакет maven в проекте, он говорит мне, что не может разрешить зависимость

[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (default) on project roo: Execution default of goal o
rg.codehaus.mojo:aspectj-maven-plugin:1.0:compile failed: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.0 or one of its dependencies
could not be resolved: Could not find artifact com.sun:tools:jar:1.4.2 at specified path C:\Program Files\Java\jre6/../lib/tools.jar ->
[Help 1]

, поэтому предполагается, что JAVA_HOME на самом деле на один уровень глубже, чемна самом деле, я просмотрел локальный репозиторий maven и обнаружил, что log4j 1.2.16 использует эту зависимость

Я пытался сделать JAVA_HOME похожим на C:\Program Files\Java\jre6\bin\, но затем maven не запустился, он сказал мне, что мой путь JAVA_HOMEбыл неправ

Ответы [ 15 ]

16 голосов
/ 19 марта 2011

Вам понадобится Java JDK, а не просто JRE.Вы можете получить его на Страница Java Oracle

Редактировать: из Руководство по свойствам Maven :

${java.home} specifies the path to the current JRE_HOME environment use with relative paths to get for example:
<jvm>${java.home}../bin/java.exe</jvm>

И с JDK, например, вc:\jdk maven $ {java.home} указывает на c:\jdk\jre

8 голосов
/ 15 февраля 2012

Я также нашел это, которое помогло мне.

... В Eclipse вы должны убедиться, что установленные JRE используют установки JDK.

Это означает, что в параметре конфигурации ... Окно / Настройки / Java / Установленные JRE ... Вы должны указать на установку JDK.

Вам нужно изменить путь к JRE в JDK. для% программных файлов% \ Java \ jdk1.6.0_25 \ jre

2 голосов
/ 19 декабря 2011

Переменная java.home может быть также получена из вашего проекта pom.xml.Дважды проверьте ссылку на компилятор-плагин maven.У меня была такая же проблема, при попытке построить, по поводу этого нытье не может найти javac.Мой java.home, JAVA_HOME были настроены правильно.

То, что для меня оказалось FIX, это исправление файла pom.xml, в результате которого я внес следующие изменения:

            <!-- Original Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>${default.java.version}</source>
                <target>${default.java.version}</target>
                <showDeprecation>false</showDeprecation>
                <executable>${default.java.home}/bin/javac</executable>
                <compilerVersion>${default.java.version}</compilerVersion>
                <fork>true</fork>
            </configuration>

            <!-- MODIFIED Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>

                <!-- SPECIFY A DISCRETE VERSION!! Do not let it derive it! -->
                <source>1.6</source>
                <target>1.6</target>

                <!--
                  <showDeprecation>false</showDeprecation>
                  <executable>${default.java.home}/bin/javac</executable>
                  <compilerVersion>${default.java.version}</compilerVersion>
                  <fork>true</fork>
               -->
            </configuration>
1 голос
/ 30 сентября 2013

Сегодня была такая же проблема. Оказывается, мне специально нужно было использовать «Program Files» в пути, несмотря на то, что установка Windows (и, следовательно, имя папки) была на немецком языке.

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

Так что, если вы уверены, что ваши пути верны, попробуйте «Program Files» вместо вашей локализованной альтернативы. Работал на меня.

1 голос
/ 02 мая 2013

Просто добавьте немного информации к ответу об изменении настроек окна. Я поместил местоположение JRE как C:\Program Files\Java\jre7, потому что это казалось очевидным выбором.

Однако это ошибка. Правильный ответ, как указано, это C:\Program Files\Java\jdk1.7.0_10\jre. Я указываю на это, потому что легко ошибиться.

1 голос
/ 25 декабря 2012

Эта проблема также возникает в Intellij IDEA (IDEA 11.x ~ Windows 7 ~ Java 7). Задание свойства systempath ссылалось на IDEA jre ...

Стабильным решением было создание локального профиля maven в $ HOME / .m2 / settings.xml

<profiles>
  <profile>
    <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
          <jdk>NUMERIC_VERSION</jdk>
        </activation>
        <properties>
          <java.home>                   
            <!-- ABSOLUTE_PATH_HERE -->
          </java.home> 
        </properties>
  </profile>
</profiles>
0 голосов
/ 09 февраля 2016

У меня только что была эта проблема после автообновления Java (в Windows 7) для моих проектов Maven из командной строки (отдельная проблема, чем версия maven в Eclipse). При автообновлении JRE была удалена папка jre в JDK, на которую указала моя системная переменная окружения JAVA_HOME. Поскольку jre не был найден, maven по умолчанию установил JRE (до сих пор не выяснил, как). Я восстановил папку jre в своем каталоге JDK и удалил ссылку на C: \ ProgramData \ Oracle \ Java \ javapath, которая была добавлена ​​в начало системной переменной Path, и сборки maven вернулись в нормальное состояние.

0 голосов
/ 16 декабря 2015

Вы также должны убедиться, что библиотека Java находится в пути к классам вашего проекта.Перейдите в свойства проекта -> путь сборки Java -> вкладка библиотеки.Проверьте, есть ли библиотека jdk в списке.Если не добавить это.Это также может быть причиной такой ошибки.

0 голосов
/ 21 марта 2014

У меня была похожая проблема, и ответ так прост;

maven не мог найти переменную JAVA_HOME, пока я не понял, что записал путь Java в переменную пути. Поэтому ответом на мою «ОШИБКА: JAVA_HOME не найден в вашей среде ...» было создание новой переменной с именем JAVA_HOME. Может быть, это неудача для чайников, но мне потребовался час, чтобы понять ...

0 голосов
/ 04 октября 2013

Я столкнулся с подобной проблемой, следующая проблема решена:

JAVA_HOME = C:\Program Files\java\jdk
M2_HOME= C:\Program Files\apache-maven

inside path = ....%JAVA_HOME%\bin;%M2_HOME%\bin;

это решило проблему.

...