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

26 ответов:

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

и вы сделали.

альтернативой, если ответ 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. закройте диалоговое окно "Свойства", нажав кнопку"ОК".

если вы используете с 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 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 а другой -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 там и проблема решена.

enter image description here

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

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

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

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

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

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

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

в моем случае у меня была системная переменная 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>

добавить новое определение 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. нажмите на кнопку Добавить -- > нажмите на архивы из файла Система -- > Нажмите кнопку Далее -- > нажмите кнопку Добавить --> перейти к .каталог m2\respository и поиск созданного файла войны --> Файл выберите войны --> Нажмите кнопку Открыть - > нажмите Применить --> ОК

  3. щелкните правой кнопкой мыши на проекте -- > нажмите на Maven установить под Запуск От Имени

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

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

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

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

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

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

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