it-swarm.com.ru

В этой среде не предусмотрен компилятор. Возможно, вы работаете на 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?
547
Sai prateek
  1. В Eclipse IDE перейдите в окно > Настройки > - Java > Установленные JRE > и проверьте установленные JRE . У вас должна быть запись с JDK там.
  2. Выберите Env Execution, как показано ниже. Нажмите OK
  3. Затем Щелкните правой кнопкой мыши в своем проекте -> Maven -> Обновить проект

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

enter image description here

852
jaipster

Для меня это именно то, на что жалуется девица Затмения

enter image description here

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

122
Thai Tran

Для меня ничего не работало, пока я не сделал это изменение в моем 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 в явном виде (как описано выше) сделала свое дело.

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

Я получал эту ошибку при попытке сделать maven-сборку из Eclipse.

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

35
jlars62

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

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

Select the right JDK for your Runtime

Select default JRE

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

34
Eduardo Dennis

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

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

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

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

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

вы увидите окно, как это enter image description here

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

И вы сделали.

27
GauRang Omar

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

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

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

  1. Откройте библиотеки проекта для Java Путь сборки: щелкните правой кнопкой мыши "Проект> Путь сборки> Настроить путь сборки ..." и выберите вкладку "Библиотеки".
  2. Выберите запись "JRE System Library" и нажмите "Удалить".
  3. Нажмите "Добавить библиотеку ...".
  4. Волшебник всплывает. Выберите "Системная библиотека JRE" и нажмите "Далее>".
  5. Теперь выберите правильный JDK (в моем случае "JRE рабочей области по умолчанию", который я настроил с помощью JDK).
  6. Закройте мастера, нажав "Готово".
  7. Закройте диалог "Свойства", нажав "ОК".
13
Sir Hackalot

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

env var

  • Если вы используете Eclipse, просто обратитесь https://stackoverflow.com/a/21279068/6097074
  • Если вы используете intellij, сразу после добавления Java_HOME откройте команду Prompt из каталога проекта и запустите mvn clean install (не используйте терминал intellij).
9
ankit

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

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

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

9
brunoais

Я столкнулся с той же проблемой при попытке создать 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.

7
Dhaval Simaria

Если вы запускаете команду 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"
7
Mahder

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

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

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

6
manntsheth

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

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

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

4
Florin D

Я получил решение.

Наиболее распространенное решение этой проблемы - изменить местоположение jdk на my Установленные JRE вместо расположения JRE но это не решило мою проблему в этот раз.

Поэтому я сделал ниже, чтобы решить проблему. Разверните Установленную вкладку JRE , и вы найдете Среды выполнения вкладка.

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

enter image description here

3
Vero J

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

Когда вы устанавливаете 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.

3
Sam

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

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

enter image description here

enter image description here

3
Krishna Rajagopalan

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

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

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

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

Не могу найти решение для этого, так что ...

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

Тем не мение...

  1. Удалите все версии Java со своего компьютера
  2. Установите JDK8 отсюда: http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

  3. Затем определите значение среды системы Java_HOME - учебное пособие здесь: https://docs.Oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. Перезапустите Eclipse и наслаждайтесь! (по крайней мере, это то, что я сделал)

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

2
JustNatural

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

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

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

2
Raja

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

Solution

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

имя переменной: 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

1
Navdeep Ghotra

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

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

1
Ishan Ojha

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

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

Добавить новое определение JRE (выберите путь JDK), работал для меня.

http://help.Eclipse.org/neon/index.jsp?topic=%2Forg.Eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm

1
Lrodriguez84

я столкнулся с той же проблемой, ошибка, которую я сделал, я добавил JRE путь только в путь VAR, а не JDK путь. Когда JDK путь был добавлен к пути и построить проект Maven, он работает идеально. Спасибо всем

1
Sapna

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

1
Kunal Khaire

Я попробовал большинство ответов без успеха. Что сработало для меня (после: https://stackoverflow.com/a/21279068/240889 ):

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

enter image description here

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

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

0
Ad Infinitum

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

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

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

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

  2. Нажмите кнопку "Добавить" -> нажмите "Архивы" из файловой системы -> нажмите "Далее" -> нажмите "Добавить" -> перейдите в каталог .m2\respository и найдите сгенерированный файл войны -> выберите файл войны -> Нажмите кнопку Открыть -> Нажмите Применить -> ОК

  3. Щелкните правой кнопкой мыши на проекте -> Нажмите на Maven Install в разделе "Запуск от имени".

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

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

0
S Kumar

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

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

0
Monika

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

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

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

0
Mohammed Sarfaraz