it-swarm.com.ru

Ошибка компиляции пакета Maven

я создал проект webapp, используя maven в Eclipse. когда я запускаю команду mvn package в командной строке, она показывает следующую ошибку. 

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.310s
[INFO] Finished at: Tue Mar 05 14:32:23 IST 2013
[INFO] Final Memory: 16M/218M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project  Compilation fa
ilure
[ERROR] ***No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?***
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoFailureException

я пытался изменить JDK и JRE. но не работает. все еще показывает ту же ошибку

22
Shiju K Babu

В Windows 7 - 64 bit , существует проблема с правами доступа, которая не позволяет установщику распаковать файл C:\Program Files\Java\jdk1.6.xx\lib\tools.jar в ваш локальный каталог. Этот jar-файл используется maven-compiler-plugin версии 3.x вместо обычного javac

Решение: Запустите как администратор установщик Java JDK! И убедитесь, что tools.jar находится в C:\Program Files\Java\jdk1.6.xx\lib\

Если вы используете плагин m2e maven для интеграции, вы хотите, чтобы файл был виден Eclipse, выполнив следующие шаги в Eclipse:

  • Зайдите в Окно -> Настройки -> Java -> Установленные JRE
  • Выберите JDK, который вы используете (C:\Program Files\Java\jdk1.6.xx)
  • Нажмите Edit, чтобы увидеть список jar-файлов, включая tools.jar, OW вы можете добавить его как Add External JAR

Затем настройте запуск maven с помощью этих шагов:

  • Выполнить-> Выполнить настройки-> Заполнить имя, базовый каталог и цели. 
  • Затем в том же окне перейдите на вкладку JRE и укажите на JDK\jdk1.6.xx \
47
Sym-Sym

Перейдите к «Конфигурации времени выполнения» и настройте JRE на JDK.

 Select the right JDK for your Runtime

Или, как предложил @PawanKumarBaranwal, установите JDK по умолчанию. Но будьте осторожны, если у вас настроено несколько JRE.

 Select default JRE

11
kdoteu

Попробуй это. Зайдите в Окно -> Настройки -> Java -> Установленные JRE.

Дважды щелкните JRE, которая находится внутри установленных JRE.

Укажите путь JDK (например, C:\Program Files\Java\jdk1.7.0_80\) в JRE Home и укажите имя JRE как JDK . Нажмите «Готово», а затем «ОК».

Для меня это сработало.

3
Pawan Kumar Baranwal

Для меня (32-битная Windows 7) мне удалось добавить следующее в переменную среды вашего пути:

% Java_home%\Lib;

3
Aldous Hinton

В моем случае ошибка «В этой среде не предусмотрен компилятор. Возможно, вы работаете на JRE, а не на JDK», из-за того, что JRE был установлен в другом месте, чем его значение по умолчанию в JDK.

Работая под 64-битным Linux, у меня установлен Oracle 64-битный JDK SE 1.6.0_45 на /opt/Java. 32- и 64-битные JRE были установлены в /opt/Java/jre32 и /opt/Java/jre64 с символической ссылкой jre: (т.е. ln -s jre64 jre), sojre ->./jre64(meaning/opt/jdk/jrewas a symlink referencing/opt/jdk/jre64).

После того как я переименовал jre64 в jre (т.е. rm jre ; mv jre64 jre ; ln -s jre jre64), эта проблема исчезла; и я смог построить с помощью Maven (внутри NetBeans).

Maven, похоже, смотрит на путь JRE, говоря: «jre64 не является правильным именем для установки по умолчанию JRE-inside-of-JDK, поэтому предположим, что JDK не существует в ../»), что может помешать ему от определения местоположения каталога JDK lib, содержащего tools.jar и т. д.

Не проверял, но то же самое может произойти в Windows, если JRE не находится в расположении по умолчанию (или, возможно, не в каталоге %Java_HOME%\jre). Если JDK и JRE установлены, установщик Oracle хочет установить JRE по адресу %Java_HOME%\jre6, а не %Java_HOME%\jre. Это может быть связано с тем, что для процесса удаления JDK требуется каталог \jre; если JRE была установлена ​​поверх JRE JDK в каталоге \jre, а не в \jre6, удаление JDK после удаления JRE завершится неудачно, если каталог\jre не будет скопирован, JRE будет удален, а копия \jre восстановлена в \jre.

1
Dietmar May

Есть несколько вариантов для указания.

Шаги: Прямо в проекте в проводнике проекта. Выберите «Выполнить» -> «Выполнить настройку» -> нажмите «Сборка Maven» -> щелкните конфигурацию сборки/или создайте новую конфигурацию. Вы увидите окно как данный снимок ниже, нажмите на вкладку JRE там.

Вы видите, что у вас есть 3 варианта 1) JRE рабочей области по умолчанию 2) Среда выполнения 3) Альтернативная JRE 1) JRE рабочей области по умолчанию устанавливается из меню «Окно» вверху -> Настройки -> Java -> Установленные JRE - Здесь вы можете добавить свои jdk 2) Среду исполнения jdk можно установить в pom.xml 

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <fork>true</fork>
        <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
    </configuration>
</plugin>

3) Альтернативный JRE может использоваться для выбора jdk из вашего каталога

1
Saurabh Verma

Зайдите в windows -> Настройки -> Java -> Установленные JRE

может быть, jre уже добавлен  enter image description here

нажмите Добавить -> Стандартный VM -> Далее -> Каталог

и найдите JDK в моем случае путь был C:\Program Files\Java\jdk1.8.0_111

затем нажмите на готово.

вы увидите такое окно

 enter image description here

выберите JDK -> Применить -> ОК

И вы сделали.

1
GauRang Omar

Перейти к preferences>installed JRE>

затем нажмите add

выберите C:\program files\Java\

нажмите enter

он будет искать другой JRE, чем JDK, а затем выбрать то, что не выбрано

1
Suyog Talekar

чтобы указать путь ниже

держите путь jdk на первом месте в переменной пути, так что другой путь Java будет игнорироваться. ошибка компиляции будет исправлена.

0
Vipin Purohit

После создания второго рабочего пространства для работы в отдельной ветви исходного кода я столкнулся с причудливой ситуацией, когда я мог сделать сборку Maven из командной строки в новом рабочем пространстве, но не в Eclipse. Я попытался установить конфигурацию JRE для JDK, как описано другими, но все равно не повезло. В конце концов мне пришлось искать все содержимое каталога .metadata нового рабочего пространства, чтобы найти файлы-нарушители, которые отказались от перенастройки. Главный виновник был

.plugins/org.Eclipse.core.runtime/.settings/org.Eclipse.jdt.launching.prefs

Это все еще указало на неправильный каталог несмотря на мое изменение конфигурации. Я выполнил ручное редактирование, чтобы указать правильное имя и местоположение JDK. Я также отредактировал файлы под

.plugins/org.Eclipse.debug.core/.launches

Все это также указывало на JRE вместо JDK. После внесения этих изменений я мог создавать проекты во втором рабочем пространстве из Eclipse, а не только из командной строки. 

0
Michael P Stein