сбой сборки maven:Не удалось найти компилятор Javac в:проблема с jre или jdk

StackOverflow https://stackoverflow.com/questions/2222560

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня есть мой 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 ?

Это было полезно?

Решение

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

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

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.

Другие советы

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

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

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

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

Ты попробуй:

Перейти к 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.

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

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

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

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

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

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

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

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

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

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

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

mvn archetype:generate....

mvn compile

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

На моем компьютере у меня установлена jre по умолчанию по адресу c:\program файлы\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.

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

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

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

Я решил проблему, изменив местоположение установленного 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 проблема решена.

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

Выполните следующие действия:

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

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

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

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

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

Скриншот:

enter image description here

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

Партха

Щелкните правой кнопкой мыши Проект -> Свойства -> Путь сборки Java.Выберите системный путь JRE -> Редактировать.Выберите JRE рабочей области по умолчанию и укажите на JDK > 1.4

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

Решение простое, несколько раз eclipse windows -> preference -> java -> Установленные JRES, указывающие на C:\Program files\Java\jre, когда я изменил его на C:\Program files\Java\JDK 6.0\jre это работает на 100%.

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

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

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

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

Не забывайте, что если вы запускаете свой проект из определенной конфигурации Eclipse, вам следует изменить среду выполнения Java в разделе "Конфигурации запуска" -> "Ваша конфигурация maven" -> "Вкладка JRE" после того, как вы добавите нужный JDK в свои настройки Eclipse.

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

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

sudo yum -y install java-1.7.0-openjdk-devel

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

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

Если вы установили JAVA_HOME, а проблема не устраняется, попробуйте следующее.(у меня была такая же проблема на только что установленном компьютере.)

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

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

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

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

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

Многие другие ответы советуют вам указать вашему Eclipse на JDK вместо JRE.

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

Вот что для меня решило эту же проблему.

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

Я изменил конфигурацию 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>

У меня это сработало.

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

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

делай Echo %JAVA_HOME%
тогда mvn --version

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

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

В СВЯЗАННЫХ РЕСУРСАХ добавьте новый путь с именем JAVA_HOME и укажите местоположение вашего jdk, что-то вроде "C:\Program Files\ Java\jdk1.8.0_73"

Вот и все!!

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

Если у вас нет МУРАВЕЙ создайте файл, затем сгенерируйте его.В eclipse вы можете легко создать МУРАВЕЙ файл.

Перейдите по ссылке для создания МУРАВЕЙ файл сборки [http://www.codejava.net/ides/eclipse/how-to-create-ant-build-file-for-existing-java-project-in-eclipse].

Теперь следуйте приведенным шагам:

1) Добавьте свой МУРАВЕЙ создайте файл в ANT view, который находится в окне просмотра.

2) щелкните правой кнопкой мыши на вашем МУРАВЕЙ создайте файл и выберите Запускайте Как и второй вариант в этой "Муравьиной сборке".

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

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

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

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

7) Нажмите применить.

Вот и все...!!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top