Ошибка Eclipse/Maven: "В этой среде не предусмотрен компилятор"

Я относительный новичок в мире развития Java. Моя организация Java-гуру находится на неопределенном семейном отпуске, и мне была поручена поддержка некоторых приложений Java, которые он разработал. Он установил Eclipse [Kepler SR1] с Maven на моем компьютере, прежде чем он ушел, и, похоже, он работал нормально.

Теперь я готов развернуть свою первую модификацию и запустить Maven install, но у меня возникли проблемы с ее работой - я получаю следующий вывод на моей консоли:

[ERROR] Не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 3.1: компиляция (по умолчанию компиляция) в проекте mrpapp: ошибка компиляции
[ОШИБКА] В этой среде компилятор не предусмотрен. Возможно, вы работаете на JRE, а не на JDK?

но я определенно запускаю JDK, а не JRE. Я дважды проверил мой $JAVA_HOME (C:\Program Files (x86)\Java\jdk1.7.0_60) и имеет javac.exe в своем каталоге bin.

Я прикрепляю копию моего файла pom.xml для вашего обзора. Я уверен, что есть что-то, что вызывает проблему, но я не уверен, что это может быть. Я использую ноутбук с 64-разрядной версией Windows 7, если вам нужна дополнительная информация о платформе/окружении, я также могу предоставить это.

Любая помощь будет принята с благодарностью.

Ответ 1

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

И посмотрите, есть ли запись, указывающая на ваш путь JDK, а если нет, нажмите кнопку "Изменить" и укажите путь, в который вы настроили среду JAVA_HOME.

Ответ 2

Screen_shot Добавить 'tools.jar' в установленную JRE.

  1. Eclipsewindowpreference.
  2. Выберите installed JREsEdit
  3. Добавить внешние банки
  4. выберите tools.jar из tools.jar java/JDKx.x/lib.
  5. Нажмите Готово

Ответ 4

Я перепробовал все вещи; тот, который работал для меня:

  1. Щелкните правой кнопкой мыши по проекту Eclipse и перейдите к свойствам.
  2. Нажмите на Путь сборки Java и перейдите на вкладку Библиотеки.
  3. Проверьте, какая версия Java добавлена туда; это JRE или JDK?
  4. Если вы используете проект Maven и хотите создать решение.
  5. Выберите JRE добавил их и нажмите удалить.
  6. Нажмите кнопку Добавить папку внешнего класса и добавьте установку JDK, выбрав в системе.
  7. Нажмите Применить и ОК.
  8. Перезапустите Eclipse.
  9. Сборка прошла успешно.

Ответ 5

Добавьте эти конфигурации в pom.xml

<project ...>
    ...
    <build>
        ...
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <fork>true</fork>
                    <executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

Ответ 6

Я также сталкивался с подобной ошибкой, когда я работал с Jdk1.8_92. Для меня я обнаружил, что tools.jar отсутствует в моей папке jdk. Поскольку я работал в консоли, я не мог попробовать варианты eclipse, предложенные другими.

Я установил jdk-8u92-windows-x64. После того, как я попробовал все параметры, я заметил, что в jdk1.8.0_92/lib отсутствует файл tools.jar. Я скопировал tools.jar из старой версии java. Затем он смог скомпилировать.

Ответ 7

Пожалуйста, проверьте, есть ли у вас следующие элементы в элементе вашего pom.xml, особенно в jdk.version, потому что переход на установленный jre не исправил мне подобную ошибку.

<properties>
    <jdk.version>1.7</jdk.version>
    <spring.version>4.1.1.RELEASE</spring.version>
    <jstl.version>1.2</jstl.version>
    <junit.version>4.11</junit.version>
</properties>

Ответ 8

если кто-то запускает Eclipse в Ubuntu и имеет эту проблему, я нашел ответ, выполнив следующие шаги:

  • Eclipse- > окно- > предпочтения.
  • Выберите установленные JREs- > Добавить
  • Выберите стандартVM.
  • JRE home: нажмите кнопку [Directory..].
  • Выберите java (моя проблема заключалась в том, что мое затмение работало с java8, а моя VM была с java7), в моем случае java8 был установлен в usr/local/jvm/java-8-oracle.
  • Пресс-финиш.
  • Затем нажмите установленную стрелку JRES, чтобы вы могли видеть другие параметры.
  • Перейдите в среду выполнения.
  • Выберите JavaSE-1.6 слева и справа (совместимый JRE), вы должны выбрать Java, который вы только что установили (в моем случае java-8-oracle). вы должны сделать это с помощью JavaSE1.8.
  • Нажмите "ОК" и перезапустите Eclipse.

Ответ 9

Я получал ту же ошибку при попытке выполнить сборку maven в Eclipse во вновь установленной установке Eclipse Neon (для разработчиков JEE), в Windows 10 с установленными JDK 8 и JRE 8.

Я попытался указать tools.jar как внешнюю lib, а также установить jdk как -vm в eclipse. Ни одна из этих вещей не работала.

Выбор JDK в качестве исполнения по умолчанию, как указано выше, сделал трюк.

  • Eclipse- > window- > preference- > java- > Установленные JREs- > среды выполнения.
  • Выберите JavaSE-1.8
  • Проверьте JDK1.8 в разделе "Совместимые JRE".

Текст выше совместимого списка JREs на шаге 3 говорит: "JRE по умолчанию можно указать, проверив его"

Примечание. У меня также есть плагин компилятора maven, явно перечисляющий 1.8 в pom

    <plugin>  
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

Ответ 10

Следуйте: WindowsНастройкиJava ---> Установленные JRE

SampleImage

Нажмите на " Поиск.."

Перейдите на диск C ---> Программные файлы

Образец изображения 2

Eclipse найдет все jre и jdk → выберите один из jdk и выберите Apply

Ответ 11

В моем случае я создал конфигурацию запуска, и всякий раз, когда я пытался ее запустить, будет отображаться ошибка. После поиска на некоторых веб-сайтах я отредактировал конфигурацию запуска и на вкладке JRE, выбрал JRE рабочего времени как "стандартное JRE рабочего пространства", которое я уже настроил, чтобы указать на мою локальную установку Java JDK (например, C:\Program Files (x86)\Java\jdk1.8.0_51). Это решило мою проблему. Может быть, это помогает кому-то там.

Ответ 12

Установленная JRE В моем случае я решил проблему, удалив дубликаты имен, я сохранил только один с именем: jdk.1.8.0_101

Ответ 13

получала ту же проблему, указала java на папку bin в eclipse, используя: windows > preferences > java > installed JREs > удалить любую существующую JRE и указать ее в папку java bin (в основном в C:\Program Files\Java\jdk1.8.x_xx).

затем запустите maven install, он должен работать.

Ответ 14

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

mvn –version

Убедитесь, что JAVA_HOME ссылается на дом JDK, а не на JRE

В Windows:

Перейдите в раздел Свойства системы → Дополнительные параметры системы → Дополнительно → переменная среды, а в разделе "Системные переменные" выберите переменную JAVA_HOME и нажмите "Изменить". Заполните форму следующим Имя переменной: JAVA_HOME Значение переменной:

В Unix:

export JAVA_HOME=<ABSOLUTE_PATH_TO_JDK>

см. эта ссылка

Ответ 15

Когда я запускал mvn compile, я получал сообщение об ошибке ниже в консоли:

[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1087 source files to C:\Code\DevVNextComplete\Development_vNext\Source\JARS\target\classes
[INFO] -------------------------------------------------------------
[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

[Разрешение]

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

enter image description here

Ответ 16

  • Удалите старую Java (JDK/JRE) из системы (сохраните одну (последнюю) версию java). Также удалите, если какие-либо старые java-jre/jdk записи в переменных среды PATH/CLASSPATH
  • Eclipse- > Window- > Preferences- > Установленные JREs- > Добавить/редактировать JDK из последней установки
  • Eclipse- > Window- > Preferences- > Установленные JREs- > Execution Environment- > Выберите нужную версию java слева и установите флажок справа.
  • Если вы используете maven, включите следующий тег в pom.xml(обновляйте версии по мере необходимости) внутри тега плагинов.

    <plugin>  
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    
  • Щелкните правой кнопкой мыши проект eclipse Maven → Обновить проект

Ответ 17

Для меня (в Windows 10) я получал сообщение об ошибке "Никакой компилятор не предоставляется в этой среде" в командной строке Windows при запуске mvn install. Исправление изменяло переменную среды JAVA_HOME, чтобы указать на мой jdk (C:\Program Files\Java\jdk1.8.0_101); ранее он указывал на jre.

И чтобы заставить Eclipse использовать новый jdk, я отредактировал eclipse.ini в своем распределении eclipse и изменил строку для -vm на C:\Program Files\Java\jdk1.8.0_101\bin.

Ответ 18

проверить версию java в версии pom.xml и jre в Eclipse- > Window- > Preferences- > Установленные JRE. В моем случае pom.xml имеет другую версию (у него 1,8, а eclipse - 1.7). Исправлена ​​установка версии в pom.xml до 1.7.

Ответ 19

если вы работаете вне eclipse в окне командной строки
убедитесь, что у вас есть правильный JAVA_HOME и что этот каталог содержит компилятор, введя в командной строке следующую команду:

dir %JAVA_HOME%\bin\javac.*

Ответ 20

1. Перейти к Windows → Настройки → Java → Установленные JRE → Среда выполнения

2. Выберите версию java, которую вы используете в настоящее время в поле "Окружения выполнения". Так что в поле "Совместимые JRE" вы можете увидеть " jre1.8.0_102 [идеальное совпадение]" (если ваша версия java - 1,8). Затем попробуйте построить с помощью maven.

Ответ 21

Maven требует компиляции JDK. В Eclipse вам нужно ИЗМЕНИТЬ/ЗАМЕНИТЬ вашу JRE до пути JDK, на который указывает ваш JAVA_HOME. Перейдите в окно > Настройки > Java > Установленные JRE.

Убедитесь, что maven-compiler-plugin в вашем pom.xml имеет источник и цель java-версии в вашем JAVA_HOME

http://learn-automation.com/maven-no-compiler-is-provided-in-this-environment-selenium/

Ответ 22

Убедитесь, что у вас установлен %JAVA_HOME%, набрав echo %JAVA_HOME% в командной строке. Если у вас нет этого набора, вам нужно добавить свой путь Java в Window Environmental Variables.

Ответ 23

Это сработало для меня. 1. Нажмите Window-> Настройки → Установленная JRE. 2. Убедитесь, что вы ссылаетесь на JDK, как показано на рисунке ниже. enter image description here

Если нет, нажмите Add-> Стандартная виртуальная машина → Укажите путь JDK, выбрав каталог, и нажмите " Готово", как показано на рисунке enter image description here

  1. Последний шаг, нажмите на Установленные JRE → Среды исполнения → выберите свой JDE, как показано на рисунке ниже enter image description here

  2. Maven → Чистый

Ответ 24

У меня была проблема с Eclipse Neon, когда по умолчанию рабочее пространство не изменилось, хотя я добавил правильное местоположение в Preferences-> Java-> Установленные JRE. Это было в новом рабочем пространстве, которое я создал для работы над веткой кода; Первоначально он был установлен в местоположение JRE, а не JDK. Тем не менее, даже после изменения настроек, я мог строить с помощью командной строки, но сборка в Eclipse вызвала ошибку no compiler. Посмотри пожалуйста

Ошибка компиляции пакета Maven

ответ на вопрос, какие файлы конфигурации Eclipse нужно было редактировать вручную, чтобы Eclipse распознал правильное рабочее пространство по умолчанию. Я до сих пор не знаю, почему настройки предпочтений не были перенесены в новую конфигурацию рабочего пространства.