Помилка Eclipse / Maven: "У цьому середовищі не передбачено жодного компілятора"


78

Я відносно новачок у світі розвитку Java-підприємств. Гуру моєї організації Java перебуває у невизначеній сімейній відпустці, і мені було доручено підтримувати деякі розроблені ним програми Java. Він налаштував Eclipse [Kepler SR1] з Maven на моєму комп’ютері перед тим, як піти, і, здавалося, він працював нормально.

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

[ПОМИЛКА] Не вдалося виконати ціль org.apache.maven.plugins: maven-compiler-plugin: 3.1: compile (default-compile) у проекті mrpapp: Помилка компіляції
[ПОМИЛКА] У цьому середовищі не передбачено жодного компілятора. Можливо, ви працюєте на JRE, а не на JDK?

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

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

Будь-яка допомога буде вдячна.


Що там сказано в Eclipse, коли ви натискаєте Вікно-> Налаштування-> Java-> Компілятор? Якщо це не так, ви також можете перевірити файл eclipse.ini, щоб переконатися, що він не вказує на встановлення Java jre.
Роберт Белтран,

5
Якщо припустити, що збірка Eclipse не вдається, чи намагалися ви запустити команду Maven (наприклад mvn install) безпосередньо з командного рядка? Один з цих двох питань може також допомогти: stackoverflow.com/questions/19655184 / ... і stackoverflow.com/questions/15220392 / ...
andersschuller

1
відкрити вікно команд і ввести, javac -vчи працює це?
Генрі

Виявити, яка Java насправді запускає вашу збірку, складніше, ніж мало б бути. Спробуйте запустити mvn help:systemта перевірте параметри середовища та властивості системи відповідають очікуваному.
Гас

2
@andersschuller має справді хороший момент - це не вдається через командний рядок, або через затемнення?
Гас

Відповіді:


159

Перейдіть до Вікна → Налаштування → Java → Встановлені JRE.

І подивіться, чи є запис, що вказує на ваш шлях до JDK, а якщо ні, натисніть кнопку Редагувати та вкажіть шлях, який ви налаштували у своєму JAVA_HOMEсередовищі.


4
Дякую вам обом! Я перейшов до Вікна-> Налаштування-> Java-> Встановлені JRE і побачив, що інший шлях вказаний нижче мого за замовчуванням. Я видалив його, і коли я спробував встановити Maven, він працював без помилок. Проблема вирішена!
Ken L

2
Працював у мене. Навіть там було вказано розташування jre8 (з програмних файлів (x86)). Я змінив його на jre7..працював.
Аніл Баскар,

це працює для мене, але це дійсно дивно ..! Хтось знайшов інше можливе виправлення?
Dwhitz

@Dhn Що ти маєш на увазі, це дивно? Якщо ви говорите про саму помилку, це зовсім не дивно. Однією з цілей Maven є компіляція коду Java, тому йому потрібен JDK замість JRE.
Хорхе Кампос

Це дивно, тому що eclipse хоче jdk як jre .. і у мене також є багато інших помилок, тому що я імпортував той самий проект за допомогою intellij, і негайно він показує мені помилку типу "недійсний jre". Більше того, багато інших конф і конфліктів не визнаються за неправильний jre ..
Dwhitz

22

Screen_shot Додайте 'tools.jar' до встановленого JRE.

  1. Eclipse-> window->preference .
  2. Виберіть installed JREs->Edit
  3. Додайте зовнішні банки
  4. вибрати tools.jarз java/JDKx.x/libпапки.
  5. Клацніть Готово

Це рішення. Додавання tools.jar вирішило проблему для мене.
zygimantus

2
Я не можу знайти tools.jar у jdk-10.0.1.
digitig


12

Я спробував усі речі; той, який працював у мене:

  1. Клацніть правою кнопкою миші на проект Eclipse і перейдіть до властивостей.
  2. Клацніть на Шлях побудови Java і перейдіть на вкладку Бібліотеки.
  3. Перевірте, яка версія Java додана туди; це JRE чи JDK?
  4. Якщо ви використовуєте проект Maven і хочете створити рішення.
  5. Виберіть доданий JRE і натисніть видалити.
  6. Клацніть Додати зовнішню папку класу та додайте установку JDK, вибравши з системи.
  7. Клацніть Застосувати та ОК.
  8. Перезапустіть Eclipse.
  9. Збірка вдалася.

Правильно! це спрацювало для мене, після того, як я налаштував Eclipse в уподобаннях з JDK і повторно побудував проект, ця проблема все ще виникає. І вищевказане рішення спрацювало.
Badr DRAIFI

8

Додайте ці конфігурації у 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>

4

Це спрацювало для мене. 1. Клацніть на Вікно-> Налаштування -> Встановлений JRE. 2. Перевірте, чи посилання на JDK, як показано на зображенні нижче. введіть тут опис зображення

Якщо ні, натисніть Додати -> Стандартна віртуальна машина -> Вкажіть шлях JDK, вибравши каталог і натисніть на Готово, як показано на зображенні введіть тут опис зображення

  1. Останній крок натисніть Установлені JRE -> Середовища виконання -> виберіть свій JDE, як показано на малюнку нижче введіть тут опис зображення

  2. Maven -> Чистий


3

Я також стикався з подібною помилкою, коли працював з Jdk1.8_92. Для мене я знайшов tools.jar у моїй папці jdk відсутній. Оскільки я працював у консолі, я не міг спробувати варіанти затемнення, запропоновані іншими ..

Я встановив jdk-8u92-windows-x64. Після того, як я спробував усі варіанти, я помітив, що tools.jar відсутній у папці jdk1.8.0_92 / lib. Я скопіював tools.jar зі своєї попередньої версії Java. Потім Він зміг скомпілювати.


2

Будь ласка, перевірте, чи є в елементі вашого 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>

2

якщо хтось запускає Eclipse в Ubuntu і має цю проблему, я знайшов відповідь, виконавши такі дії:

  1. Затьмарення-> вікно-> налаштування.
  2. Виберіть встановлені JRE-> Додати
  3. Виберіть стандартну VM.
  4. Домашня сторінка JRE: натисніть кнопку [Каталог ..].
  5. Виберіть свій java (моя проблема полягала в тому, що моє затемнення працювало з java8, а моя віртуальна машина - з java7), у моєму випадку java8 був встановлений в usr / local / jvm / java-8-oracle.
  6. Натисніть закінчити.
  7. Потім натисніть встановлену стрілку JRES, щоб побачити інші варіанти.
  8. Перейдіть до середовища виконання.
  9. Виберіть JavaSE-1.6 ліворуч, а праворуч (сумісний JRE) потрібно вибрати щойно встановлену Java (у моєму випадку java-8-oracle). вам потрібно зробити ці кроки з JavaSE1.8.
  10. Натисніть OK і перезапустіть Eclipse.

2

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

Я спробував вказати tools.jar як зовнішню бібліотеку, а також встановити jdk як -vm в eclipse. Жодне з цих речей не спрацювало.

Вибір JDK як середовища виконання за замовчуванням, як згадано вище, зробив трюк ..

  1. Eclipse-> вікно-> налаштування-> java-> Встановлені JRE-> Середовища виконання.
  2. Виберіть JavaSE-1.8
  3. Перевірте JDK1.8 у розділі "Сумісні JRE".

Текст над списком сумісних JRE на кроці 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>



1

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


1

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

потім запустіть maven install, це має спрацювати.


1

Щоб перевірити, що використовує ваш Maven, відкрийте командний рядок і введіть:

mvn –version

Переконайтеся, що JAVA_HOME стосується будинку JDK, а не JRE

У Windows:

Перейдіть до Властивості системи -> Додаткові налаштування системи -> Додатково -> змінна середовища, а в розділі Системні змінні виберіть змінну JAVA_HOME і натисніть Редагувати. Заповніть форму з таким іменем змінної: JAVA_HOME Значення змінної:

На Unix:

export JAVA_HOME=<ABSOLUTE_PATH_TO_JDK>

дивіться це посилання


1

Коли я працював 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 у свої змінні середовища, і тоді вона спрацювала.

введіть тут опис зображення


0
  1. Видаліть із системи старішу Java (JDK / JRE) (Зберігайте одну (останню) версію Java), а також видаліть, якщо є будь-які старі записи Java jre / jdk у змінних середовища PATH / CLASSPATH
  2. Eclipse-> Вікно-> Налаштування-> Встановлені JRE-> Додати / редагувати JDK з останньої інсталяції
  3. Eclipse-> Вікно-> Налаштування-> Встановлені JRE-> Середовище виконання-> Виберіть потрібну версію Java ліворуч і встановіть прапорець праворуч
  4. Якщо ви використовуєте 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>
    
  5. Клацніть правою кнопкою миші на проект eclipse Maven -> Update Project

0

Для мене (у 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.


0

перевірити версію Java у pom.xml та версію jre у Eclipse-> Вікно-> Налаштування-> Встановлені JRE. У моєму випадку pom.xml має іншу версію (він мав 1.8 під час затемнення за допомогою 1.7). Виправлено версію в pom.xml до 1.7.


0

якщо ви працюєте поза eclipse у командному вікні,
переконайтесь, що у вас є правильний JAVA_HOME, і що цей каталог містить компілятор, ввівши таку команду в командному вікні:

dir %JAVA_HOME%\bin\javac.*

0

1. Перейдіть до Windows -> Налаштування -> Java -> Встановлені JRE -> Середовища виконання

2. виберіть у вікні "Середовища виконання" версію Java, яку ви використовуєте на даний момент. Таким чином, у полі "Сумісні JRE" ви зможете побачити як " jre1.8.0_102 [ідеальне збіг] " (якщо ваша версія Java становить 1.8). Тоді спробуйте побудувати за допомогою maven.


0

Maven вимагає JDK для компіляції. В Eclipse вам потрібно ЗМІНИТИ / ЗАМІНИТИ свій JRE на шлях JDK, на який вказує ваш JAVA_HOME. Перейдіть до Вікна> Налаштування> Java> Встановлені JRE.

Переконайтеся, що плагін maven-compiler у вас pom.xml має джерело та ціль версії Java у вашому JAVA_HOME

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


0

Переконайтеся, що все %JAVA_HOME%встановлено, набравши echo %JAVA_HOME%командний рядок. Якщо у вас цього набору немає, вам потрібно піти, додавши свій шлях Java до змінних середовища Window.


-1

У мене була проблема з Eclipse Neon, де за замовчуванням робоча область насправді не змінилася, хоча я додав правильне розташування в розділі Налаштування-> Java-> Встановлені JRE. Це було в новій робочій області, яку я створив для роботи над гілкою коду; спочатку було встановлено місце розташування JRE, а не JDK. Проте навіть після зміни налаштувань я міг будувати за допомогою командного рядка, проте побудова в Eclipse не спричинила помилки компілятора. Будь ласка, дивіться

Помилка компіляції пакету Maven

на мою відповідь, який файл (файли) конфігурації Eclipse потрібно було відредагувати вручну, щоб Eclipse розпізнав правильну робочу область за замовчуванням. Я досі не уявляю, чому налаштування параметрів не перенесли конфігурацію нової робочої області.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.