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


  1. в вашей среде Eclipse IDE перейдите в окно>предпочтения>Java> Установлен JREs > и проверить установлен JREs. У вас должна быть запись с JDK.
  2. выберите Env выполнения, как показано ниже. Нажмите OK
  3. затем Щелкните Правой Кнопкой Мыши на ваш проект -> Maven ->Обновление Проекта

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

enter image description here


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

enter image description here

Итак, я нажимаю 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 явно (как указано выше) сделала трюк.


  1. установить JAVA_HOME переменная среды в корневую папку JDK-требуется, если вы запускаете командную строку или maven(google для этой переменной)
  2. в свойствах проекта в разделе Java Compiler выберите требуемый JDK-если вы запускаете непосредственно из eclipse

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

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

Select the right JDK for your Runtime

Select default JRE

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


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

для меня ответ был Run ->Run Configurations выбор Maven Build Я бежал (с левой панели). Затем я нажал JRE tab и выберите опцию Workspace default JRE


перейдите в windows - > настройки - > Java - > установленные JREs

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

нажмите Add - > Standard VM - > Next - > Directory

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

затем нажмите кнопку Готово.

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

выберите JDK -> применить -> Ok

и вы сделали.


альтернативой, если ответ jaipster не работает, является переход к:
Окно > Настройки > Java > Установленная JREs

затем отредактировать jre так, чтобы он указывал на jdk, а не на jre (JRE home, поданный в Редакторе пакетов jre)

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


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

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

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

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

если вы используете с 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 - > Click Maven Build - > нажмите на свою конфигурацию сборки/или создайте новую конфигурацию. Вы увидите окно, как данный снимок ниже, нажмите на вкладку JRE есть.

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


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


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

  1. C:\ProgramData\Oracle\Java\javapath
  2. C:\env\jdk1.8.0_151\bin

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


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

env var

  • если вы используете 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 и другое jre1.8.0_74

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


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

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

поэтому я сделал ниже, чтобы решить проблему. Разверните Установлен JREs и среды исполнения табуляция.

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

enter image description here


Я просто потратил 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 и наслаждайтесь! (по крайней мере, это то, что я сделал)

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


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

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

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


Я столкнулся с той же проблемой, ошибка,которую я сделал, заключалась в том, что я добавил путь jre только в пути 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>

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

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


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


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


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

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

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

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

  2. нажмите на кнопку Добавить -- > нажмите на архивы из файла Система --> нажмите на next --> нажмите на Add --> перейти к .каталог m2\respository и поиск созданного файла войны --> Выберите файл войны --> нажмите на кнопку Открыть -- > нажмите на применить -- > OK

  3. щелкните правой кнопкой мыши на проекте -- > нажмите на Maven Install под Run As

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

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


вам не хватает сборки maven.

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

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


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

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