В этой среде компилятор не предоставляется. Возможно, вы работаете на 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?

Ответ 1

  • В своей Eclipse IDE перейдите в Окно > Настройки > Java > Установленные JRE > и проверьте свои установлены JRE. У вас должна быть запись с JDK.
  • Выберите Execution Env, как показано ниже. Нажмите ОК
  • Затем Щелкните правой кнопкой мыши в проекте → Maven Обновить проект

Кроме того, вам может потребоваться изменить Maven JRE (см. ответ @jlars62), который выглядит следующим образом. Goto Run → Run Configurations, выбрав Maven Build I, который я запускал (с левой панели). Затем я щелкнул вкладку JRE и выбрал параметр "Рабочая область по умолчанию JRE

введите описание изображения здесь

Ответ 2

Для меня это именно то, о чем жалуется maven of eclipse.

enter image description here

Итак, я нажимаю кнопку Edit и меняю путь на папку JDK, затем очищаю проект, и все начинает работать

Ответ 3

Для меня ничего не работало, пока я не сделал это изменение в моем 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. Ничто из этого не изменило, включая добавление этого в eclipse.ini:

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

В конце концов, я никогда не получал m2e для выполнения в JDK, но явно задал компилятор Java (как указано выше).

Ответ 4

  1. Задайте для переменной среды JAVA_HOME корневую папку JDK - требуется, если вы запускаете командную строку или maven (mvn).
    • (Для получения дополнительной информации JAVA_HOME Google JAVA_HOME)
  2. В свойствах проекта в разделе Java Compiler выберите необходимый JDK - если вы запускаете прямо из eclipse

Ответ 5

Я получал эту ошибку при попытке выполнить сборку maven из eclipse.

Для меня ответ шел RunRun Configurations, выбрав Maven Build, который я запускал (с левой панели). Затем я щелкнул вкладку JRE и выбрал опцию Workspace default JRE

Ответ 6

В моем случае это было решено, выполнив следующее:

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

Выберите правильный JDK для вашей Runtime

Выбрать по умолчанию JRE

Я скопировал ответ на случай, если он по какой-то причине удален, но источник здесь

Ответ 7

Перейти к окнам → Настройки → Java → Установленные JRE

может быть jre уже добавлено введите описание изображения здесь

нажмите Добавить → Стандартная виртуальная машина → Далее → Каталог

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

затем нажмите "Готово".

вы увидите следующее окно введите описание изображения здесь

выберите JDK → Apply → Ok

И все готово.

Ответ 8

Я попробовал все вышеперечисленное, однако все равно получаю то же сообщение об ошибке.

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

Если это так, попробуйте следующее:

  • Откройте конкретные для проекта библиотеки пути сборки Java. Щелкните правой кнопкой мыши "Проект > Путь сборки > Настроить путь сборки..." и выберите вкладку "Библиотеки".
  • Выберите запись "Системная библиотека JRE" и нажмите "Удалить".
  • Нажмите "Добавить библиотеку...".
  • Появится мастер. Выберите "JRE System Library" и нажмите "Далее > ".
  • Теперь выберите правильный JDK (в моем случае "Рабочая область по умолчанию JRE", которую я настроенный с использованием JDK).
  • Закройте мастера, нажав "Готово".
  • Закройте диалоговое окно "Свойства", нажав "ОК".

Ответ 9

У меня та же проблема, и я просто добавляю JAVA_HOME в переменные окружения.

env var

  • Если вы используете Eclipse, просто обратитесь fooobar.com/questions/19275/...
  • Если вы используете intellij, сразу после добавления JAVA_HOME откройте командную строку из каталога проекта и запустите mvn clean install (не используйте терминал intellij).

Ответ 10

Альтернатива, если ответ jaipster не работает, - это перейти на:
Окно > Предпочтения > Java > Установленные JRE

Затем отредактируйте jre так, чтобы он указывал на jdk, а не jre (jre home, зарегистрированный в редакторе jre-пакетов)

Это сработало для меня.

Ответ 11

Если вы выполняете команду Maven из cmd, убедитесь, что вы установили путь jdk перед запуском команды. В моем случае я создал файл .bat, содержащий следующее:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"

Ответ 12

Я столкнулся с той же проблемой при попытке создать jar файл приложения моего проекта с помощью mvn clean install, хотя приложение работало нормально при запуске из Eclipse.

Проблема была, действительно, слишком наивной, что я не установил переменную среды JAVA_HOME. Все, что мне нужно было сделать, это установить переменную окружения JAVA_HOME в каталог JDK, убедиться, что это не до "\ bin" и без точки с запятой ";" ,

enter image description here

Как я понял это как:

Приложение прекрасно работало в Eclipse, поскольку системная библиотека JRE ссылалась на JRE внутри папки JDK вместо внешней папки JRE без JDK. [Как хорошо объяснено в других ответах]

Эта конфигурация не относится к команде maven, которую мы запускаем в командной строке. Он по-прежнему будет искать переменную JAVA_HOME для доступа к системной библиотеке JRE, а когда она не найдена, она ссылается на внешнюю папку JRE без JDK.

Ответ 13

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

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

Вы видите, что у вас есть 3 варианта 1) JRE по умолчанию для рабочей области 2) Среда выполнения 3) Альтернативный JRE enter image description here 1) JRE по умолчанию для рабочей области устанавливается из меню "Окно" вверху → Настройки → Java → Установленные JRE -Here вы можете добавить свой jdk enter image description here 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 из вашего каталога

Ответ 14

Для меня JRE был в переменной окружения PATH до пути JDK

  1. C:\ProgramData\Oracle\Java\javapath
  2. C:\окр\jdk1.8.0_151\Bin

Поэтому я удалил 1. Вероятно, обмен их тоже исправит.

Ответ 15

Мой ответ относится к Eclipse в среде Windows.

Я пошел в Настройки → Java → Установленные JRE, я НЕ видел JDK здесь. Я видел только JRE здесь. Поэтому я добавил JDK, а затем снял отметку с JRE. Затем проверил JDK. Затем я запустил POM файл, используя Run Configurations. Выберите вкладку JRE и выберите опцию "Рабочая область по умолчанию..." Вот изображения

enter image description here

enter image description here

Ответ 16

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

Когда вы устанавливаете JDK, установщик спрашивает вас, где вы хотите установить файлы. По умолчанию в Windows это похоже на C:\Program Files\Java\jdk1.8.0_74 (или любую другую версию, которую вы устанавливаете).

Затем он запрашивает у вас каталог для установки JRE, который по умолчанию является чем-то вроде C:\Program Files\Java\jre1.8.0_74.

Обратите внимание, что один jdk 1.8.0_74, а другой jre 1.8.0_74

Я спешил, и, подумав, что установщик дважды задавал мне тот же вопрос, установите оба места установки JDK и JRE в D:\devtools\jdk\jdk1.8.0_74, в результате чего установщик перезапишет JDK с помощью JRE. Это привело, в частности, к отсутствующему javac.exe в моем ящике JDK и той же ошибке, о которой OP сообщал здесь во всех моих сборках maven.

Ответ 17

У меня есть решение.

Наиболее распространенным решением этой проблемы является изменение местоположения jdk в качестве Установленных JRE вместо JRE location, но это не помогло моя проблема в этот раз.

Итак, я сделал следующее, чтобы решить проблему. Разверните вкладку Установленные JRE, и вы найдете вкладку Execution environment.

Нажмите на свою любимую среду исполнения. В моем случае это было JAVASE-1.8. Там он показывает 2 варианта. JDK и JRE. Выберите JDK, и проблема будет решена.

введите описание изображения здесь

Ответ 18

Постановка проблемы= Компилятор в этой среде не предусмотрен. Возможно, вы работаете на JRE, а не на JDK? IntelliJ

Решение

Пожалуйста, установите переменную окружающей среды, как показано ниже, чтобы решить проблему

Имя переменной: JAVA_HOME

Значение переменной: C:\Program Files\Java\jdk1.8.0_202

Имя переменной: M2_HOME

Значение переменной: C:\Program Files\apache-maven-3.6.0

Кроме того, добавьте Java и путь maven в " Системные переменные ", как показано ниже:

  1. C:\Program Files\Java\jdk1.8.0_202\bin

  2. C:\Program Files\apache-maven-3.6.0\bin

Ответ 19

Я просто потратил 3 часа на эту проблему, пока мне не удалось заставить ее работать. У меня была эта ошибка в терминале Eclipse при выдаче команды компиляции mvn:

В этой среде компилятор не предоставляется. Возможно, вы работаете на JRE, а не на JDK?

Итак, я прочитал здесь, что мне нужно создать новую системную переменную JAVA_HOME и указать ее на папку установки jdk. Однако это породило еще одну ошибку:

Исходный вариант 1.5 больше не поддерживается. Используйте 1.6 или новее

Не удалось найти исправление для этого, поэтому...

Итак, исправление, чтобы все это исчезло, - установить Java SE Development Kit 8! Я использовал 9, думая, что если это последнее, то должно быть лучше...

В любом случае...

Надеясь, что это избавит некоторых бедных странников от некоторых неприятностей.

Ответ 20

В моем случае путь к системной переменной был расположен в папке "C:\ProgramData\Oracle\Java\javapath".

В папке "C:\ProgramData\Oracle\Java\javapath" java, только там javaw. Так что я получаю ту же ошибку.

Когда я удалил все файлы в папке "C:\ProgramData\Oracle\Java\javapath", моя ошибка была устранена.

Ответ 21

Попробуйте это.

<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>

Ответ 22

i столкнулся с той же проблемой, я сделал ошибку, я добавил путь jre только в пути var, а не в пути jdk. Когда путь jdk был добавлен в путь и построил проект maven, он работает отлично. Спасибо всем

Ответ 23

Я сделал следующее изменение, и это сработало для меня. Надеюсь, это поможет кому-то. ввести описание изображения здесь

Ответ 25

Я получал ту же ошибку, когда создавал новый экземпляр EC2 Ubuntu 16.04 с уже установленной Java на нем, и во время работы пакета mvn clean я столкнулся с этой проблемой, и приведенное ниже решение сработало для меня.

Если вы работаете на сервере Ubuntu, то вы можете попробовать установить Java снова, и для этого вы можете использовать этот ответ Как установить JDK в Ubuntu Linux

Ответ 26

В дополнение к ответу выше, я могу сказать, что просто попробуйте запустить Maven с терминала (вне Eclipse). Таким образом, если он создается снаружи, но не в Eclipse, вы можете понять, что проблема должна быть в Eclipse.

Ответ 27

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

Нам просто нужно использовать сборку развертывания, чтобы настроить путь упакованного файла войны проекта Java EE, а затем повторно запустить maven-install.

Шаги по использованию сборки развертывания:

  • Щелкните правой кнопкой мыши по проекту Jave EE → нажмите Свойства   - > щелкните узел развертывания

  • Нажмите кнопку "Добавить" → Нажмите "Архивы из файла"   Система → Нажмите дальше → Нажмите Добавить → Перейти к   .m2\каталог репозитория и поиск созданного файла войны →   Выберите файл войны → Нажмите кнопку "Открыть" → Нажмите "Применить" → "ОК"

  • Щелкните правой кнопкой мыши по проекту → Нажмите на Maven Install под   Run As

Это приведет к успешному созданию вашего проекта без ошибок компилятора.

Надеюсь, что это решает проблему без JDK.

Ответ 28

Вам не хватает любой сборки maven.

Помимо вышеперечисленных изменений JRE. Я все еще сталкивался с подобной проблемой. Мне не хватало зависимости JUnit после добавления, она работает нормально.

Надеюсь, это поможет.

Ответ 29

Я пошел в Настройки → Java → Установленные JRE, я НЕ видел JDK здесь. Я видел только JRE здесь. Поэтому я добавил JDK.

здесь мы должны обязательно удалить JRE, а не просто снимать отметку.

Ответ 30

Я попробовал большинство ответов без успеха. То, что работало для меня, было (после следующего fooobar.com/info/19275/...):

  • щелкните правой кнопкой мыши на проекте → Свойства
  • выберите Java Build Path
  • выберите Системную библиотеку JRE
  • нажмите изменить
  • В среде исполнения выберите JDK

enter image description here

  • нажмите Готово
  • построить и запустить