В этой среде компилятор не предоставляется. Возможно, вы работаете на JRE, а не на JDK?
я компилирую проект в Eclipse с помощью m2eclipse. Я установил путь JDK в Eclipse следующим образом:
Windows-->preferences-->installed jres--> jdk1.7.xx path
но это показывает ошибку
[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: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
26 ответов:
- в вашей среде IDE Eclipse перейдите в окно>предпочтения>Java> Установлен JREs > и проверить установлен JREs. У вас должна быть запись с JDK там.
- выберите Env выполнения, как показано ниже. Нажмите ОК
- затем Щелкните Правой Кнопкой Мыши on ваш проект -> Maven ->Обновление Проекта
кроме того, возможно, вам придется изменить Maven JRE (см. ответ @jlars62), который выглядит следующим образом. Goto Run - > выполнить конфигурации, выбрав сборку Maven, которую я запускал (с левой панели). Затем, я перешел на вкладку JRE и выбран параметр рабочей области JRE по умолчанию
для меня это именно то, на что жалуется maven eclipse
Итак, я нажимаю
Edit
кнопка и изменить путь к папке 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> </plugins> </build>
Другие Примечания
я мог видеть, что m2e выполнялся в JRE, а не в JDK. Ничто из того, что я сделал, не изменило этого, включая добавление этого к затмению.ini:
-vm C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
в конце концов я никогда не получал m2e для выполнения в JDK, но установка компилятора Java явно (как указано выше) сделала трюк.
- установить
JAVA_HOME
переменная среды в корневую папку JDK-требуется, если вы запускаете командную строку или maven (google для этой переменной)- в свойствах проекта в разделе компилятор Java выберите необходимый JDK-если вы запускаете непосредственно из eclipse
в моем случае это было решено следующим образом:
перейдите в "конфигурацию среды выполнения" и настройте JRE на JDK.
Я скопировал ответ на всякий случай, если он будет удален по какой-то причине, но источник здесь
я получал эту ошибку при попытке сделать сборку maven из eclipse.
для меня ответ был бы
Run
->Run Configurations
выборMaven Build
Я бежал (с левой панели). Затем я нажал наJRE
tab и выберите опциюWorkspace default JRE
альтернативой, если ответ jaipster не работает, является переход к:
Окно > Настройки > Java > Установленный JREsзатем отредактировать jre так, чтобы он указывал на jdk, а не на jre (JRE home, поданный в Редакторе пакетов jre)
Это сработало для меня.
Я попробовал все вышеперечисленное, однако, все еще получаю то же сообщение об ошибке.
в моем случае фактическая JRE была неправильно использована в качестве системной библиотеки JRE в пути сборки для конкретного проекта, который, очевидно, переопределял все эти другие настройки, обсуждаемые здесь.
Если это так в вашем случае попробуйте следующее:
- откройте библиотеки конкретных проектов пути сборки Java: щелкните правой кнопкой мыши " проект > Путь сборки > настроить путь сборки..."и выберите Вкладка "библиотеки".
- выберите запись " JRE System Library "и нажмите"Удалить".
- Нажмите "Добавить Библиотеку...".
- появляется мастер. Выберите " системная библиотека JRE "и нажмите "Далее>".
- Теперь выберите правильный JDK (в моем случае "Workspace default JRE", который я настроено с помощью JDK).
- закрыть мастер, нажав кнопку "Готово".
- закройте диалоговое окно "Свойства", нажав кнопку"ОК".
если вы используете с
cmd
, убедитесь, что вы установили путь jdk перед запуском команды. В моем случае, я создал.bat
- файл, содержащий следующее:set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60 start cmd.exe /k "cd c:\aem_proj\sis\aau"
есть несколько вариантов для указания.
шагов: Прямо на проекте в обозревателе проектов Перейдите в Run - > Run Configuration - > нажмите Maven Build - > нажмите на свою конфигурацию сборки/или создайте новую конфигурацию. Вы увидите окно, как данный снимок ниже, нажмите на вкладку JRE есть.
вы видите, что у вас есть 3 варианта 1) рабочее пространство по умолчанию JRE 2) среда выполнения 3) альтернативный JRE 1) рабочее пространство по умолчанию JRE устанавливается из меню "Окно" в верхней части -> Настройки - > Java - > установленная JREs-здесь вы можете добавить свой jdk 2) среду выполнения jdk можно установить в pom.xml, как упоминалось @ksnortum
<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> </plugins>
3) альтернативный JRE может быть использован для выбора jdk из вашего каталога
я столкнулся с той же проблемой при попытке построить файл jar моего приложения проекта с помощью
mvn clean install
, хотя приложение работало нормально во время работы с Eclipse.вопрос был, действительно слишком наивным, что я не установил переменной JAVA_HOME переменные среды. Все, что мне нужно было сделать, это установить переменную среды JAVA_HOME в каталог JDK, убедитесь, что это не до "\bin" и без точка с запятой ";".
Как я понял, это как:
приложение отлично работало в Eclipse как системная библиотека JRE имел в виду JRE внутри папка JDK вместо внешней папки JRE без JDK. [Как очень хорошо объяснено в других ответах]
эта конфигурация не применяется к maven команда, что мы запускаем в командной строке. Он все равно будет искать JAVA_HOME переменная для доступа к системной библиотеке JRE, и когда она не найдена, она ссылается на внешнюю папку JRE без JDK.
для меня JRE был в переменной среды PATH до пути JDK
- C:\ProgramData\Oracle\Java\javapath
- C:\env\jdk1.8.0_151\bin
поэтому я удалил 1. Вероятно, замена их тоже исправит это.
у меня такая же проблема, и я просто добавляю
JAVA_HOME
до переменные среды.
- если вы используете eclipse, просто обратитесь https://stackoverflow.com/a/21279068/6097074
- если вы используете intellij, сразу после добавления
JAVA_HOME
откройте командную строку из каталога проекта и запуститеmvn clean install
(Не используйте терминал intellij).
есть еще один возможный ответ на этот вопрос, и я могу быть единственным человеком, достаточно глупым, чтобы наткнуться на это, но я думаю, что стоит добавить, поскольку ни один из других ответов не применялся, поскольку у меня уже были правильные настройки.
когда вы устанавливаете JDK, программа установки спрашивает вас, где вы хотите установить файлы. По умолчанию, в Windows, это что-то вроде C:\Program файлы\Java\jdk1.8.0_74 (или любая версия, которую вы устанавливаете).
затем он спрашивает вы для каталога для установки JRE, который по умолчанию является чем-то вроде C:\Program файлы\Java\jre1.8.0_74.
обратите внимание, что один jdk1.8.0_74 а другой -jre 1.8.0_74
я торопил вещи, и думая, что установщик задает мне один и тот же вопрос дважды, установите оба моих места установки JDK и JRE D:\devtools\jdk\jdk1.8.0_74, в результате чего установщик перезаписывает JDK с помощью JRE. Это привело к (среди прочего) отсутствует и javac.exe в моем JDK bin, и та же ошибка, о которой сообщил OP здесь во всех моих сборках maven.
У меня есть решение.
наиболее распространенным решением этой проблемы является изменение расположение jdk мой Установлен JREs вместо JRE location но это не решить мою проблему в этот раз.
поэтому я сделал ниже, чтобы решить эту проблему. Разверните Установлен JREs и среды исполнения табуляция.
нажмите на свою любимую среду выполнения. В моем случае это было JAVASE-1.8. Там он показывает 2 варианта. JDK и JRE. Выберите JDK там и проблема решена.
Я просто потратил 3 часа с этой проблемой, пока мне удалось заставить его работать. У меня была эта ошибка в терминале Eclipse при выдаче команды компиляции mvn:
компилятор не предоставляется в этой среде. Возможно, вы работаете на JRE, а не на JDK?
поэтому я прочитал здесь, что мне нужно сделать новую системную переменную с именем JAVA_HOME и указать ее на папку установки jdk. Однако это породило другое ошибка:
исходный вариант 1.5 больше не поддерживается. Используйте 1.6 или более поздней
не удалось найти исправление для этого так...
чтобы исправить все пройдет, это установить комплект разработчика Java 8! Я использовал 9, думая, что если это последний, он должен быть лучше...
в любом случае...
- удалите все версии java с Вашего компьютера
установить JDK8 из здесь: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
затем определите значение окружающей среды системы JAVA_HOME-учебник здесь: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/
перезапустите Eclipse и наслаждайтесь! (по крайней мере, это то, что я сделал)
надеюсь, это избавит какого-нибудь бедного странника от некоторых неприятностей.
в моем случае у меня была системная переменная path has "C:\ProgramData\Oracle\Java\javapath-местонахождение.
In "C:\ProgramData\Oracle\Java\javapath" расположение java, javaw только там. Так что я получаю ту же ошибку.
Как только я удалил все файлы в "C:\ProgramData\Oracle\Java\javapath" папка моя ошибка была решена.
Я столкнулся с той же проблемой, ошибка,которую я сделал, была добавлена JRE path только в пути var, а не в пути jdk .Когда путь jdk был добавлен к пути и построил проект maven, его работа была идеальной .Спасибо всем
попробуйте это.
<build> ... <plugins> ... <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <fork>true</fork> <executable> path to jdk \bin\javac.exe</executable> </configuration> </plugin> </plugins> </build>
в дополнение к ответу выше, я мог бы сказать, что просто попробуйте запустить Maven из терминала (за пределами Eclipse). Таким образом, если он строит снаружи, но не в Eclipse, вы можете понять, что проблема должна быть в Eclipse.
есть несколько ответов на этот вопрос, но все они связаны с правильной конфигурацией пути JDK, но только с JRE мы можем решить эту проблему.
нам просто нужно использовать сборку развертывания для настройки пути к упакованному файлу war проекта Java EE, а затем повторно запустить Maven-install.
шаги по использованию сборки развертывания:
щелкните правой кнопкой мыши на проекте Jave EE -- > нажмите на свойства -- >нажмите на кнопку - Сборке
нажмите на кнопку Добавить -- > нажмите на архивы из файла Система -- > Нажмите кнопку Далее -- > нажмите кнопку Добавить --> перейти к .каталог m2\respository и поиск созданного файла войны --> Файл выберите войны --> Нажмите кнопку Открыть - > нажмите Применить --> ОК
щелкните правой кнопкой мыши на проекте -- > нажмите на Maven установить под Запуск От Имени
Это позволит построить ваш проект успешно, без каких-либо ошибок компилятора.
надеюсь, что это решает проблему без JDK.
вам не хватает какой-либо сборки maven.
помимо вышеуказанных изменений JRE.Я все еще сталкивался с подобной проблемой.Я пропустил зависимость JUnit после добавления, она работает нормально.
надеюсь, что это поможет.
Я получал ту же ошибку, когда я создал новый экземпляр EC2 ubuntu 16.04 с Java, уже установленным на нем, и во время запуска mvn clean package я столкнулся с этой проблемой, и приведенное ниже решение работало для меня.
Если вы работаете на сервере Ubuntu, то вы можете попробовать установить Java снова, и для этого вы можете использовать этот ответ Как установить JDK на Ubuntu Linux