it-swarm.com.ru

сбой сборки maven: невозможно найти компилятор Javac в: jre или jdk проблема

Мой Java_HOME установлен в 

C:\Program Files (x86)\Java\jdk1.6.0_18

После запуска maven install я получаю это сообщение от Eclipse:

Причина:

Unable to locate the Javac Compiler in:
  C:\Program Files (x86)\Java\jre6\..\lib\tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.Sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the Java_HOME environment variable.

Я уверен, что это сложная часть 

Пожалуйста, убедитесь, что вы используете JDK 1.4 или выше и не JRE

Когда я запускаю конфигурацию с установленным JRE6, как мне изменить ее на JDK 1.6, который я уже установил?

ПРАВКА

Я даже пытался изменить плагин:

<plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <executable>C:\Program Files (x86)\Java\jdk1.6.0_18\bin</executable>
                </configuration>
            </plugin>

Тем не менее я получаю ту же ошибку

Может быть, я забыл сказать, что я использую плагин Eclipse Maven. Как я могу перейти с JRE на JDK в Eclipse?

107
Gandalf StormCrow

Вы можете попробовать обновить JDK Eclipse, используя следующее:

Добавьте и установите JRE в Window-> Preferences ...-> Java-> Установленные JRE:

JRE type: Standard VM JRE 
Name: jdk1.6.0_18
JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18

Если это не так, возможно, что квадратные скобки и пробелы в пути Java_HOME вызывают проблемы. Попробуйте скопировать JDK в другое место и обновить Java_HOME.

135
lucrussell

Eclipse.ini нужен аргумент vm, чтобы указать ваше местоположение jdk. 

Отредактируйте файл Eclipse.ini так, чтобы он указывал на ваш домашний jdk, как показано ниже:

-vm
C:\Program Files\Java\jdk1.6.0_06

Это гарантирует, что Eclipse будет работать с JDK, а не с JRE по умолчанию на вашем компьютере.

19
Sai Hegde

Вы пытаетесь:

Перейдите к Preferences/Java/Installed JREs и добавьте один для местоположения "C:\Program Files\Java\jdk1.6.0_27\jre или что-то в этом роде. 

Удалить один для C:\Program Files\Java\jre6 

Как вы можете видеть, путь C:\Program Files\Java\jre6\..\lib\tools.jar имеет смысл, только если первая часть (до/..) заменена на C:\Program Files\Java\jdk1.6.0_27\jre.

12
cuocdoibian1971

Установка Fork в true решила проблему для меня.

<configuration>
<fork>true</fork>
<source>1.6</source>
<target>1.6</target>
</configuration>

Большое спасибо, Сэм Ян .. ты сделал мой день

9
Prash

У меня была ТОЧНАЯ та же проблема! В течение нескольких дней искали и искали, потому что все болтовни о том, что «поместить -vm c:\program files\Java\jdkxxxxx\bin» в ini ar в качестве аргумента для ярлыка, НЕ AT ВСЕ, heklp! (Звучит ли я разочарованно? Поверьте, это преуменьшение! Я просто в ярости, потому что потерял неделю, пытаясь сделать Maven надежным!) 

У меня было очень непредсказуемое поведение. Иногда это компилируется, иногда нет. Если я сделал maven clean, он не смог найти компилятор и не удалось. Если я потом что-то изменил в пути сборки, это вдруг снова заработало !!

Пока я не пошел в окно -> настройки -> Java -> установленные JRE. Я добавил новую JRE, используя местоположение JDK, а затем удалил JRE. Внезапно Maven побежал стабильно! 

Может быть, в руководстве Apache стоит написать буквы с размером шрифта 30 или около того? При всем уважении, это просто возмутительно для сообщества Java! Я не могу себе представить, сколько дней было потеряно всеми этими людьми, пытающимися решить свои проблемы такого рода! Я не могу предположить, что это выпущено как заключительная версия. Лично я бы даже не посмел выпустить такую ​​вещь под названием BETA software ...

С наилучшими пожеланиями в любом случае .... После недели вмешательства я наконец-то могу начать развиваться. Я надеюсь, что мой босс не узнает об этом. Мне потребовалось много усилий, чтобы убедить его НЕ переходить на .NET, и я уже сожалею об этом.

8
Lorenzo

Я получил ту же проблему, используя запуск от -> Maven установить в Eclipse. Java_HOME и Eclipse.ini были в порядке и указывали на мой последний JDK. Но m2clipse использовал JRE. Использование mvn вне Eclipse работало нормально! В моем случае я решил проблему следующим образом: 1. Перейдите в Eclipse: Окно -> Настройки -> Java -> Установленные JRE 2. Для JRE и JDK было две неактивные записи. Активным был последний установленный JDK. Удалите все записи, но один Maven должен использовать.

Я думаю, что Maven не учитывает, какой из них активен ...

3
Markus

Я только что установил maven 3.0.4, установил M2_HOME, M2 и Java_HOME соответственно. Затем я выполнил следующие команды:

mvn archetype:generate....

mvn compile

Я получил сообщение об ошибке, такое как: maven unable to locate javac compiler

На моем компьютере по умолчанию jre устанавливается в c:\program files\Java\jre.1.6 . А у меня другие c:\Java\jdk1.6 и Java_HOME установлены в this c:\Java\jdk1.6

Я не вижу ничего плохого в моей настройке. После поиска я решил заглянуть в mvn.bat, я повторял %Java_HOME% на каждом шаге, и он корректно отображается как C:\Java\jdk1.6, но когда я запускаю команду: mvn --version, он отображает домашнюю страницу Java: c:\program files\Java\jre1.1.6 ,.

Наконец, я обнаружил, что мне просто нужно установить -Djava.home=c:\Java\jdk1.6, как в приведенной ниже команде, и теперь он работает нормально: 

%MAVEN_Java_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Djava.home=%Java_HOME%" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%

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

Примечание. Это для mvn в командной строке, а не для Eclipse.

3
smngo

Основываясь на http://maven.Apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html , вы должны будете установить значение true в вашем файле pom.xml. ,.

2
Sam Yang

Только настройка Eclipse

Сделайте следующие шаги:

  1. Щелкните правой кнопкой мыши свойства проекта Eclipse.

  2. Путь сборки Java -> Библиотеки

  3. Выберите Системную библиотеку JRE -> Нажмите кнопку Изменить.

  4. Нажмите кнопку "Установленные JREs ..."

  5. Правка JRE как: Установите JRE Home = Java_HOME или Java_HOME\jre

ScreentShot:

enter image description here

Большое спасибо,

Парта

2
Parthasarathy B

Похоже, что Maven использует JRE, а не JDK. Возможно, вы установили Maven перед установкой JDK? 

Проверьте файлы настроек . Всего их 3: система, пользователь и проект. Скорее всего, в установочном конфиге ($ M2_HOME/conf/settings.xml) или, возможно, в индивидуальном конфиге ($ {user.dir} /. M2/settings.xml).

2
Devon_C_Miller

Я решил проблему, изменив местоположение Установленного JRE на каталог, присутствующий в самом JDK. Установка правильного значения переменной среды Java_HOME не решила проблему. 

В моем случае есть две директории

  • C:\Program Files\Java\jdk1.7.0_03 --> For JDK

  • C:\Program Files\Java\jre7 --> For JRE

Первоначально я установил C:\Program Files\Java\jre7 как Установленный JRE в Eclipse, и я получал ту же ошибку в случае Maven (Ant работал нормально).

Изменяя установленную JRE на C:\Program Files\Java\jdk1.7.0_03\jre7 как Установленная JRE в Eclipse, проблема решается.

2
Nikhil

Решение простое, иногда окна Eclipse -> preference -> Java -> Installed JRE указывают на C:\Program files\Java\jre, когда я изменил его на C:\Program files\Java\JDK 6.0\jre, он работает на 100%. 

1
santhosh

Щелкните правой кнопкой мыши Project -> Properties -> Java Build Path. Выберите системный путь JRE -> Изменить. Выберите JRE рабочей области по умолчанию и укажите JDK> 1.4

1
asHIS

Window -> Preferences -> Java -> installed JREs -> Execution Enviroments -> click the checkbox on the right side

1
Gambotic

В моем случае в Eclipse Run-> Debug Configurations Во вкладке jre выбран jdk, а вместо jre решена проблема.

1
Vathsala Weerasinghe

Не забывайте, что если вы запускаете свой проект из определенной конфигурации Eclipse, вы должны изменить среду выполнения Java в «Run Configurations» -> «Your maven configuration» -> «JRE tab» после добавления нужного JDK в ваши предпочтения Eclipse.

1
Ivan Fernandez

У меня была такая же проблема на Amazon Linux. Оказывается, я должен был установить версию jdk devel:

Sudo yum -y install Java-1.7.0-openjdk-devel

1
Evan Siroky

Перейдите в Окно Eclipse-> Настройки ...-> Java-> Установленные JRE должны указывать на JDK, который вы установили, а не на JRE. 

1
Sudipto

Как уже упоминалось несколькими другими, Eclipse Window->Preferences...->Java->Installed JREs должен указывать наJDKвы установили, не на JRE. Только тогда он может найти папку ../lib, упомянутую в сообщении об ошибке.

Даже при этом проблема может повториться. Мой выход в Eclipse (Juno) - сделать Maven -> Update project..., после чего проблема исчезнет.

Я подозреваю, что причина в том, что некоторые из сгенерированных Eclipse файлов (.classpath, .project, .preferences) находятся в Subversion для проекта, в котором у меня возникают эти проблемы. Таким образом, обновление svn представляет проблему, а обновление конфигурации от maven в Eclipse решает ее снова.

Реальное решение: опустите сгенерированные Eclipse файлы .file из управления версиями , и позвольте плагину Eclipse maven обрабатывать конфигурацию проекта. (дополнительные указатели/предложения приветствуются).

1
avandeursen

Я изменил конфигурацию maven-compiler-plugin, чтобы добавить исполняемый файл и ответвление со значением true. 

            <configuration>
                <fork>true</fork>
                <source>1.6</source>
                <target>1.6</target>
                <executable>C:\Program Files\Java\jdk1.6.0_18\bin\javac</executable>
            </configuration>

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

0
Soumyajit Swain

Перейдите в Eclipse> «Установки»> «Java»> «Установленные JRE»> выберите местоположение JRE, на которое вы указали, и нажмите «Правка»> «Добавить внешние JAR» и выберите tools.jar.

0
Dipendra Gurung

делать Echo %Java_HOME%
затем mvn --version

путь JRE должен быть таким же .... затем перейдите Window -> preferences - Java - installed jre's
Местоположение должно совпадать с тем, что показывает Java_Home

0
vandana

Убедитесь, что «-vm» в вашем Eclipse.ini находится в двух отдельных строках, а именно:

-vm
C:\Program Files\Java\jdk1.6.0_06
0
Kevin Van Dyck

Была такая же проблема. Ничто из вышеперечисленного не сработало, у меня это сработало:

Java_HOME изменен с ...\jdk.1.8.0\на ...\jdk.1.8.0\jre \

0
Coen Damen

Если вы установили Java_HOME, и проблема не устранена, попробуйте следующее .. (. У меня была такая же проблема, на новом установленном ПК.)

Предполагая, что вы используете Eclipse.

  • Откройте окно - настройки - Java - установили jre's Удалите все, что у вас есть, добавьте желаемое, которое вы хотите использовать (JDK, нет JRE!)
  • В том же окне откройте maven - установки, добавьте mave, который вы скачали и где-то распаковали. (НЕ ИСПОЛЬЗУЙТЕ встроенную установку maven, в ней есть некоторые известные ошибки)

Это все. Ваш проект не будет страдать от таких проблем ... Надежда помогает.

0
Marcell

Многие другие ответы говорят о том, что вы должны указать Eclipse на JDK вместо JRE.

Вот еще один ответ с более конкретными/ясными [чем я видел в любом ответе здесь] пошаговыми инструкциями о том, как это сделать:Как установить JDK?

Вот зачем я решил эту проблему.

0
cellepo

Перейдите в Свойства, сделав правый клик по проекту.

В LINKED RESOURCES добавьте новый путь с именем Java_HOME и укажите местоположение jdk, например, «C:\Program Files\Java\jdk1.8.0_73».

Это все!!

0
Macu Gómez

У меня была такая же ошибка, из-за версии JUNIT у меня было 3 3.8.1, и я изменился на 4.8.1. 

так что решение 

вы должны пойти в POM и убедиться, что ваша зависимость выглядит следующим образом 

 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.1</version>
  <scope>test</scope>
</dependency>
0
Ibo

Решение этой проблемы очень простое ....

Если у вас нет файла сборки ANT, сгенерируйте его. В Eclipse вы можете легко создать файл ANT.

См. Ссылку для создания ANT файла сборки [ http://www.codejava.net/ides/Eclipse/how-to-create-ant-build-file-for-existing-Java- проект в Затмении] .

Теперь выполните следующие шаги:

1) Добавьте свой ANT файл сборки в ANT-представление, которое находится в окне просмотра.

2) щелкните правой кнопкой мыши по вашему файлу сборки ANT и выберите Run As и второй вариант в этой «Ant Build».

3) Теперь откроется диалоговое окно с различными параметрами и вкладками.

4) Выберите вкладку JRE.

5) вы увидите 3 переключателя, для которых в качестве опции будет выбран JRE или JDK.

6) Внимательно посмотрите, если в параметрах переключателей выбрано JRE, а затем измените его на JDK.

7) Нажмите «Применить».

Это оно...!!!

0
Nishat Lakhani

Вам нужно указать Java_HOME в mvn.ini (он находится в папке maven /bin), и ваша проблема исчезнет.

0
Javicha

Вы также можете убедиться, что в Eclipse есть все обновленные изменения. Для этого щелкните правой кнопкой мыши свой проект, а затем нажмите пункт меню «Обновить».

0
GregNash

Я бы предположил, что местоположение компилятора определено в pom, чтобы плагин компилятора находился в отображаемом местоположении jre, а не в местоположении jdk, на которое указывает Java_HOME.

0
Robin