Ошибка сборки maven: невозможно найти компилятор Javac в: jre или jdk issue
У меня установлен 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?
Ответы
Ответ 1
Вы можете попробовать обновить 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.
Ответ 2
eclipse.ini нуждается в аргументе vm, чтобы указать на ваше местоположение jdk.
Отредактируйте файл eclipse.ini
, чтобы указать на ваш дом jdk, что-то вроде:
-vm
C:\Program Files\Java\jdk1.6.0_06
Это гарантирует, что Eclipse будет работать от JDK, а не по умолчанию JRE на вашем компьютере.
Ответ 3
Вы пытаетесь:
Перейдите к 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
имеет смысл только в том случае, если первая часть (til the/..) заменяется на C:\Program Files\Java\jdk1.6.0_27\jre
.
Ответ 4
Настройка вилки в true разрешила проблему для меня.
<configuration>
<fork>true</fork>
<source>1.6</source>
<target>1.6</target>
</configuration>
Большое спасибо, Сэм Ян.. ты сделал мой день
Ответ 5
У меня была ТОЧНАЯ такая же проблема! Был поиск и поиск в течение нескольких дней, потому что все болтовня о "помещала -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, и я уже сожалею об этом.
Ответ 6
У меня возникла такая же проблема, используя Run as → Maven install в Eclipse. JAVA_HOME и eclipse.ini были в порядке и указали на мой последний JDK. Но m2clipse использовал JRE. Использование mvn-установки за пределами Eclipse отлично работало!
В моем случае я решил проблему следующим образом:
1. Перейдите в Eclipse: Окно → Настройки → Java → Установленные JREs
2. Были две неактивные записи для JRE и JDK. Активным был последний установленный JDK. Удалите все записи, но один maven должен использовать.
Я думаю, что maven не учитывает, какой из них активен...
Ответ 7
Я только что установил 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 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.
Ответ 8
Похоже, что Maven использует JRE, а не JDK. Возможно, вы установили Maven перед установкой JDK?
Проверьте файлы настроек. Всего 3, система, пользователь и проект. Его наиболее вероятно в конфигурации установки ($ M2_HOME/conf/settings.xml) или, возможно, в конфигурации для каждого пользователя ($ {user.dir}/. M2/settings.xml).
Ответ 9
База на http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html, вам нужно установить fork в true в pom.xml.
Ответ 10
Я решил проблему, изменив местоположение Установленной JRE на каталог, присутствующий в JDK. Установка правильного значения переменной среды JAVA_HOME
не решила проблему.
В моем случае есть два каталога
Изначально я устанавливал C:\Program Files\Java\jre7
как установленную JRE в Eclipse, и я получал ту же ошибку в случае Maven (Ant работал нормально).
Изменив установленную JRE на C:\Program Files\Java\jdk1.7.0_03\jre7
как установленную JRE в Eclipse, проблема решена.
Ответ 11
Только настройка Eclipse
Выполните следующие действия:
-
Щелкните правой кнопкой мыши по проекту проекта Eclipse
-
Путь сборки Java → Библиотеки
-
Выберите Системную библиотеку JRE → Нажмите кнопку "Изменить"
-
Нажмите кнопку "Установленные JREs..."
-
Изменить JRE как: Установить JRE Home = JAVA_HOME или JAVA_HOME\jre
ScreentShot:
![enter image description here]()
Большое спасибо,
Партха
Ответ 12
Щелкните правой кнопкой мыши Project → Properties → Java Build Path. Выберите системный путь JRE → Изменить. Выберите рабочую область по умолчанию JRE и укажите ее в JDK > 1.4
Ответ 13
Window -> Preferences -> Java -> installed JREs -> Execution Enviroments -> click the checkbox on the right side
Ответ 14
Решение прост, несколько раз окна eclipse → preference → java → Установленные JRE, указывающие на C:\Program files\Java\jre
, когда я изменил его на C:\Program files\Java\JDK 6.0\jre
, он работает на 100%.
Ответ 15
Как уже упоминалось несколькими другими, Eclipse Window->Preferences...->Java->Installed JREs
должен указывать на установленный JDK, а не на JRE. Только тогда он может найти папку ../lib
, указанную в сообщении об ошибке.
Даже при этом проблема может повторяться. Мой выход в Eclipse (Juno) - это сделать Maven -> Update project...
, после которого проблема исчезнет.
Я подозреваю, что причина в том, что некоторые из сгенерированных файлов Eclipse (.classpath,.project,.preferences) находятся в подрывной деятельности для проекта, в котором у меня возникают эти проблемы. Таким образом, обновление svn представляет проблему, и обновление конфигурации из maven в Eclipse снова разрешает его.
Реальное решение: опустить Eclipse сгенерированные файлы из управления версиями и разрешить конфигурацию проекта maven eclipse. (дополнительные указатели/предложения приветствуются).
Ответ 16
Не забывайте, что если вы запускаете проект из определенной конфигурации Eclipse, вы должны изменить Java Runtime в "Run Configurations" → "Конфигурация вашего maven" → "вкладка JRE" после добавления правой JDK к вашим предпочтениям Eclipse.
Ответ 17
В моем случае, в eclipse Run-> Debug Configurations
На вкладке jre выбранный jdk вместо jre решил проблему.
Ответ 18
Перейдите в Окно Eclipse- > Настройки...- > Java- > Установленные JRE должны указывать на установленный JDK, а не на JRE.
Ответ 19
Я бы предположил, что местоположение компилятора определено в pom для того, чтобы плагин компилятора находился в отображаемом местоположении jre, а не в местоположении jdk, на котором указывает JAVA_HOME.
Ответ 20
Вам нужно указать JAVA_HOME
в mvn.ini
(он находится в папке maven /bin
), и ваша проблема исчезнет.
Ответ 21
Если вы установили JAVA_HOME, и проблема не исчезнет, попробуйте следующее.
(у меня была та же проблема, на новом установленном ПК.)
Предполагая, что вы используете Eclipse.
- Открыть окно - настройки - java - установлен jre's
удалите все, что у вас есть, добавьте желаемое, которое вы хотите использовать (JDK, нет JRE!)
- В том же окне откройте maven - установки, добавьте установку mave, которую вы загрузили и извлекли где-нибудь. (НЕ ИСПОЛЬЗУЙТЕ встроенную установку maven, у нее есть некоторые известные ошибки).
Вот и все. ваш проект не будет страдать от проблем с ловом.
Надежда помогает.
Ответ 22
Вы также можете убедиться, что Eclipse имеет все обновленные изменения. Для этого щелкните правой кнопкой мыши ваш проект, а затем нажмите пункт меню "Обновить".
Ответ 23
Многие другие ответы говорят вам указать ваше Eclipse на JDK вместо JRE.
Вот еще один ответ с более конкретным/понятным [чем я видел в любом ответе здесь] шаг за шагом о том, как это сделать: Как вы устанавливаете JDK?
Вот зачем я решил эту проблему.
Ответ 24
Убедитесь, что "-vm" в вашем eclipse.ini находится на двух отрывных строках, то есть:
-vm
C:\Program Files\Java\jdk1.6.0_06
Ответ 25
У меня была такая же ошибка, из-за версии 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>
Ответ 26
Я изменил конфигурацию maven-compiler-plugin, чтобы добавить исполняемый файл и fork со значением 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>
Это сработало для меня.
Ответ 27
do Echo %JAVA_HOME%
то mvn --version
JRE
путь должен быть таким же.... then go Window -> preferences - java - installed jre's
местоположение должно быть таким же, как показано Java_Home
.
Ответ 28
У меня была такая же проблема на Amazon Linux. Оказывается, мне нужно было установить версию jdk:
sudo yum -y install java-1.7.0-openjdk-devel
Ответ 29
Перейдите в меню "Свойства", щелкнув правой кнопкой мыши по проекту.
В LINKED RESOURCES добавьте новый путь под названием JAVA_HOME и разместите ваше местоположение jdk, что-то вроде "C:\Program Files\Java\jdk1.8.0_73"
Что все!!
Ответ 30
Решение этой проблемы очень просто....
Если у вас нет файла ANT, создайте его. В eclipse вы можете легко создать файл ANT.
Обратитесь к ссылке, чтобы создать файл сборки ANT [http://www.codejava.net/ides/eclipse/how-to-create-ant-build-file-for-existing-java-project-in-eclipse].
Теперь выполните следующие шаги:
1) Добавьте файл ANT в ANT вид, который находится в окне просмотра.
2) щелкните правой кнопкой мыши на файле ANT и выберите Запуск от имени и второй вариант в этом разделе Ant Сборка ".
3) Теперь откроется диалоговое окно с различными опциями и вкладками.
4) Выберите вкладку JRE.
5) вы увидите 3 переключателя, и в качестве опции будут выбраны JRE или JDK.
6) Посмотрите внимательно, если параметры переключателя имеют JRE, а затем измените его на JDK.
7) Нажмите "Применить".
Что это...!!!