Сбой сборки maven: невозможно найти компилятор Javac в: jre или jdk проблема - PullRequest
107 голосов
/ 08 февраля 2010

У меня для 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, который я уже установил

EDIT

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

<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?

Ответы [ 32 ]

137 голосов
/ 08 февраля 2010

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

Добавьте и установите JRE в Окне-> Настройки ...-> 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.

19 голосов
/ 04 марта 2011

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

Отредактируйте файл eclipse.ini, чтобы он указывал на ваш домашний jdk, что-то вроде следующего -

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

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

12 голосов
/ 01 октября 2012

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

Перейдите на 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.

9 голосов
/ 24 октября 2011

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

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

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

8 голосов
/ 11 мая 2010

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

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

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

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

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

3 голосов
/ 06 мая 2012

Я только что установил 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, настроенные на это c: \ java \ jdk1.6 .

Я не вижу ничего плохого в моих настройках. После поиска я решил посмотреть mvn.bat, я повторял %JAVA_HOME% каждый шаг, и он отображается правильно как C:\java\jdk1.6, но когда я запускаю команду: mvn --version, он отображает Java home: c: \ program файлы \ 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 голосов
/ 11 мая 2010

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

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

2 голосов
/ 20 марта 2013

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

Выполните следующие шаги:

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

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

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

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

  5. Редактировать JRE как: Установить JRE Home = JAVA_HOME или JAVA_HOME \ jre

ScreentShot:

enter image description here

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

Парта

2 голосов
/ 05 ноября 2010

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

2 голосов
/ 08 февраля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...