Необходимый компилятор в данной среде отсутствует. Возможно, вы используете JRE вместо JDK?
Вопрос по проблеме компиляции проекта в Eclipse с использованием m2eclipse:
Я компилирую проект в Eclipse, используя m2eclipse. Я указал путь к JDK в Eclipse следующим образом:
Windows → Preferences → Installed JREs → путь к jdk1.7.xx
Однако при попытке сборки появляется следующая ошибка:
[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?
Как я могу решить эту проблему?
5 ответ(ов)
Чтобы правильно настроить проект на использование JDK, выполните следующие шаги:
Установите переменную окружения
JAVA_HOME
, указывающую на корневую директорию JDK. Это обязательно, если вы запускаете команды через командную строку или используете Maven (mvn
). Вы можете найти дополнительную информацию о том, как установитьJAVA_HOME
, используя поиск Google по запросуJAVA_HOME
.В свойствах проекта в разделе "Java Compiler" выберите необходимую версию JDK, если вы запускаете проект напрямую из Eclipse.
Таким образом, выполнение этих шагов поможет вам корректно настроить окружение для вашего Java-проекта.
Для меня ничего не сработало, пока я не внес это изменение в свой 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 (как показано выше) решила проблему.
Когда я пытался выполнить сборку Maven из Eclipse, у меня возникла эта ошибка.
Решение для меня заключалось в следующем: я перешёл в меню Run
→ Run Configurations
, выбрал нужную конфигурацию Maven Build
в левом панеле. Затем я кликнул по вкладке JRE
и выбрал опцию Workspace default JRE
.
Я попробовал все вышеперечисленное, но по-прежнему получаю то же сообщение об ошибке.
В моем случае в качестве библиотек JRE системы в пути сборки проекта был неправильно использован фактический JRE, который, очевидно, переопределял все остальные настройки, обсуждаемые здесь.
Если у вас аналогичная ситуация, попробуйте следующее:
- Откройте библиотеки, специфичные для проекта, на вкладке Java Build Path: щелкните правой кнопкой мыши на "Проект > Путь сборки > Настроить путь сборки..." и выберите вкладку "Библиотеки".
- Выберите запись "JRE System Library" и нажмите "Удалить".
- Нажмите "Добавить библиотеку...".
- Откроется мастер. Выберите "JRE System Library" и нажмите "Далее >".
- Теперь выберите правильный JDK (в моем случае "JRE по умолчанию в рабочем пространстве", который я настроил с помощью JDK).
- Закройте мастер, нажав "Завершить".
- Закройте диалоговое окно "Свойства", нажав "ОК".
Альтернативой, если ответ jaipster не сработал, может быть переход в раздел:
Window > Preferences > Java > Installed JREs
Затем необходимо отредактировать JRE, чтобы он указывал на JDK, а не на JRE (поле "JRE home" в редакторе пакетов JRE).
Это сработало для меня.
Ошибка «Необходимо переопределить метод суперкласса» после импорта проекта в Eclipse
Как добавить локальные JAR-файлы в Maven-проект?
Не удается запустить Eclipse - Java был запущен, но вернул код завершения = 13
IntelliJ сообщает "Невозможно разрешить символ", но код все равно компилируется
Eclipse/Java: не работает автозавершение кода