Подтвердить что ты не робот

Кордова: Ошибка проверки требований для JDK 1.8 или выше

Я использую Cordova 6.4.0 в ОС Windows 7, но я получаю эту ошибку, как только попытаюсь построить версию для Android:

Описание проблемы

Переменная Java Home правильно настроена на путь JDK, но я не знаю, почему я получаю эту проблему. Любые предложения, пожалуйста?

4b9b3361

Ответ 1

Я думаю, что нашел решение проблемы. Я отправлю ответ на случай, если кто-то столкнется с той же проблемой.

Удалите все предыдущие JDK, включая 1,8 Установите JDK 1.8

Ответ 2

Вам не нужно удалять любую более высокую версию sdk. просто установите jdk1.8.0_161 или нет, если он уже установлен.

Теперь просто установите переменную JAVA_HOME USER (не системную переменную), как показано на рисунке ниже.

enter image description here

Таким образом, вам не нужно удалять более высокую версию, и проблема будет решена.

Ответ 3

Для работы была удалена jdk 9 и переустановка jkd 8.x

На Mac для удаления перейдите на терминал и выполните следующие действия:

cd /Library/Java/JavaVirtualMachines

sudo rm -rf jdk-9.0.1.jdk

Затем установите jdk 8.x, загрузив пакет .dmg из Oracle.

Ответ 4

В Linux (Debian/Ubuntu) это можно решить, выбрав Java 1.8 SDK в

sudo update-alternatives --config javac

Непосредственное изменение переменной env JAVA_HOME похоже, не имеет никакого эффекта.

РЕДАКТИРОВАТЬ: отвечая на комментарии: Это, вероятно, связано с тем фактом, что новые установки Java Debian (и, по-видимому, Ubuntu) через менеджер пакетов не используют переменную JAVA_HOME для определения местоположения JRE. Смотрите это и этот пост для получения дополнительной информации.

Ответ 5

Удаление старых версий JDK сработало бы. Но, возможно, это обходное решение. Я столкнулся с той же проблемой и заметил, что как новая версия JDK, так и старая версия JDK-пути упоминаются в переменной 'path '.

Удаление старой версии JDK-пути из 'path 'переменной окружения сделало трюк для меня. Надеюсь, это тоже поможет кому-то.

Ответ 6

Возможно, у вас версия больше 8, но Cordova поддерживает только JDK 1.8. Просмотреть эту ссылку Документация Cordova

Я взглянул на фрагмент кода, который на самом деле проверяет номер версии вашего Java. Найдите следующее: module.exports.check_java в platform/android/cordova/lib/check_reqs.js. в строке 220. Вы увидите, что команда оставила регулярное выражение и комментарий о том, что Java 10 будет поддерживаться в будущем.

Существующее регулярное выражение не будет работать при запуске с последними версиями Java, такими как Java 10. Это потому, что Java 8 или 9 сохраняются в следующем формате: 1. [8-9]. **, но Java 10 сохраняется как 10. ** и регулярное выражение ищет версию в формате 1. [8-9]. **

// Let check for at least Java 8, and keep it future proof so we can support Java 10
var match = /javac ((?:1\.)(?:[8-9]\.)(?:\d+))|((?:1\.)(?:[1-9]\d+\.)(?:\d+))/i.exec(output);

Мое решение:

Вам не нужно удалять текущую версию JRE или JDK, поскольку установщик устанавливает каждую версию в определенную папку.

1- Установить версию Java 8 Перейдите по этой ссылке

2- Обновите переменные среды:

  • JAVA_HOME, если вы установили JDK
  • JRE_HOME, если вы установили JRE

указав их на место, где были установлены JRE 8 и JDK 8.

// On my machine   
C:\Program Files\Java\jdk1.8.0_171 // JAVA_HOME
C:\Program Files\Java\jre1.8.0_171 // JRE_HOME

Откройте новый сеанс терминала и выполните команду, которая не удалась. Это должно работать сейчас.

Не работал?

В случае сбоя по другим причинам возможен процесс отладки:

  • Убедитесь, что переменные JAVA_HOME и JRE_HOME являются системными переменными.
  • Убедитесь, что они добавлены в ваш путь пользователя Добавить переменные в путь

Ответ 7

Я рассказал, что моя переменная окружения path указывала на java 1.7, в то время как JAVA_HOME указывал на 1.8, поэтому я редактировал переменную пути до 1.8, и я был в порядке.

Ответ 8

в моем случае JAVA_HOME указывал на C:\Program Files (x86)\Java\jdk1.7.0_55

когда я писал , где java в cmd выводил C:\Program Files (x86)\Java\jdk1.7.0_55 вместе с java.exe, я изменил переменную JAVA_HOME из переменные среды C:\Program Files\Java\jdk1.8.0_20, и это сработало, поэтому, похоже, у меня было 2 экземпляра jdk, а кордове нужен v1.8. * one.

Ответ 9

Я согласен с @Хозингтоном. Это должна быть ошибка кода Кордовы обнаружения Java-версии. Что я сделал:

  1. Храните JDK 10
  2. Установите JDK 8
  3. Измените JAVA_HOME на путь JDK 8 и измените также переменную path.
  4. перезапустите "cmd" и снова запустите cordova build.

И ошибка исчезла!

Ответ 10

MAC: перейдите в: /Library/Java/JavaVirtualMachines. Убедитесь, что у вас есть только jdk1.8.0_201.jdk. Если у вас их много, удалите другой JDK.

Ответ 11

Это сообщение об ошибке заставляет пользователя сбивать с толку, как показано ниже. Кордоба успеха сборки

Сообщение об ошибке заставляет пользователя исправить ошибку сборки с конфигурацией JAVA_HOME. Но настоящая проблема заключается не только в JAVA_HOME.

Я исправляю эту проблему с правильной конфигурацией в JAVA_HOME и Path в "системной переменной". введите описание изображения здесь

Надежда может помочь устранить проблему, но не переустанавливать JDK.

Ответ 12

Ответ, отправленный MadNeox, верен. Я столкнулся с аналогичной проблемой У меня был установлен jdk 9, а также версия 1.8

Сначала я попытался сохранить jdk 9 и удалить 1.8, он выведет ошибку Ошибка проверки требований

Затем я попытался удалить jdk9 и переустановить 1. на этот раз он показывал, что не удалось запустить javac-версию

После некоторого времени игры с переменными среды я наконец получил решение

В этот момент моя система имеет только версию jdk 1.8 Cordova: 7.1.0

-Открыть вкладку "Переменные среды" -Пользовательские переменные создают новую переменную PATH -give это следующее значение C:\Program Files\Java\jdk1.8.0_151\bin (может измениться в зависимости от того, где вы установили свой jdk)

Это должно решить вашу проблему Надеюсь, что это поможет.

Хотя ответ уже был дан, мне потребовалось некоторое время, чтобы выяснить, где я ошибся, поэтому решил опубликовать это в надежде, что это спасет кого-то еще.

Ответ 13

Иногда изменение пути и java-home не работает. Вы должны добавить

C:\Users\[your user]\AppData\Local\Android\Sdk\platform-tools
C:\Users\[your user]\AppData\Local\Android\Sdk\tools

к пути изменения окружающей среды.

Ответ 14

Просто убедитесь, что такие же версии JDK (то есть 1.8 в этом случае) доступны из переменной среды PATH и JAVA_HOME. Пример: Если JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152 тогда Переменная PATH также должна содержать вышеуказанный путь и, что важно, перед любым (если есть) другим путем, если JDK/JRE уже упоминается в переменной PATH. Вы можете удалить другие версии, если другое приложение не использует другую версию java.

Ответ 15

Если у вас установлены как jdk8, так и jdk9, вы должны проверить, какая версия

на пути и где указывает JAVA_HOME.

В журнале, который вы опубликовали, я вижу, что JAVA_HOME ведет к JDK9.

измените свой globel JAVA_HOME env var на целевой JDK8 или вы можете изменить JAVA_HOME в powershell, прежде чем использовать CLI cordova, если вы хотите использовать jdk8 только для кордовы:

$env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_151"

**cordova build android**

Ответ 16

Ребята, чтобы получить смесь прямо на Windows, вам нужно сделать следующее

  1. Загрузите и установите любую версию JDK 1.8 или новее.
  2. Открытые переменные среды, создайте переменную среды JAVA_HOME и установите значение для пути установки JDK. C:\Program Files\Java\jdk1.8.0_162 убедитесь, что вы не добавляете \bin в значение.

enter image description here

  1. В переменной системного пути поставьте точку с запятой ; и добавьте это значение в системный путь, например C:\Program Files\Java\jdk1.8.0_162\bin; Здесь добавлен \bin.

Примечание. Переменные среды сложны. Они должны быть закрыты a ; перед открытием другого. Вот почему мы положили один перед добавлением значения и один после значения, чтобы закрыть его.

enter image description here

  1. Теперь закройте терминал и снова запустите, затем запустите предыдущие команды.

Ответ 17

если у вас несколько версий Java, и вам нужно их сохранить, вам нужно проверить следующее:

  • JAVA_HOME указывает на ваш jdk1.8
  • в переменной PATH вам нужно проверить, что путь jdk1.8\bin находится перед другими путями jdk\bin

Ответ 18

если у вас много версий JDK, вы можете запустить

export JAVA_HOME="/usr/local/env/java/jdk1.8.0_131.jdk/Contents/Home/"

до сборки кордова, чтобы использовать конкретную версию JDK :)

Ответ 19

Я столкнулся с той же проблемой с jdk1.8.0_201. Она была решена, когда я сделал JAVA_HOME = C:\Program Files\Java\jdk1.8.0_201 и добавил "C:\Program Files\Java\jdk1.8.0_201\bin" в переменная пути

Ответ 20

Это старый вопрос, но так как у меня была та же проблема, но у ошибки был другой источник, вот короткий ответ.

Проблема обнаружена только в Windows и в IDE Webstorm 2019.2

В версии 2019.2 возникла проблема с Webstorm, потому что он внутренне использовал open jdk для переменной% JAVA_HOME% вместо (из os) целевого java jdk.

В моем случае (да, это старый, это старый проект Cordova...)

выполнение java -version в Windows cmd.exe:

$ java -version
java version "1.8.0_221"

но выполняем java -version в терминале Webstorms:

$ java -version
openjdk version "11.0.3" 2019-04-16
// more output

Исправление пришло с патчем, выпущенным позже (сегодня) версии 2019.2.1. Теперь Webstorm использует переменную os% JAVA_HOME%, как и положено, и вывод java -version идентичен в обоих случаях.

Надеюсь, это поможет кому-то!

Ответ 21

Я просто переименовал старую папку JDK с _, на всякий случай, если мне это нужно дальше, и это сработало.

C:\Program Files (x86)\Java\_jdk1.7.0_40 
C:\Program Files (x86)\Java\_jre7

Ответ 22

  • Перейдите на панель управления.
  • Расширенные настройки системы
  • Переменные среды
  • Выберите JAVA_HOME
  • изменить
  • значение переменной для 1.8 one

Ответ 23

Кажется, Android SDK не поддерживает Java 9. Снизьте до 8, если вы не хотите полностью вернуться к JDK 1.8, что для меня смешно. JDK 8 работает для меня, но не забудьте правильно установить переменную среды JAVA_HOME в местоположение вашей установки JDK.

Ответ 24

Согласно официальной документации Кордовы, он поддерживает только JDK 1.8, не более, до даты (апрель 2018 года). Или может возникнуть проблема с скриптом обнаружения версий внутри кордовы.

Кордова: Установка требований

Ответ 25

Я отключил все установки Java и переустановил jdk-8u181-windows-x64. Это помогло мне избежать этой проблемы.

Ответ 26

если проблема сохраняется,

Проверь это:

  • JAVA_HOME ссылается на доступную версию для кордовы
  • "путь" переменной на вашем jdk/bin (и тот же jdk, что и ваш JAVA_HOME)

Ответ 28

У меня (Open) JDK 8 и 11 установлены на Windows 10, и у меня была та же проблема. Для меня сработало следующее:

  1. Установите JAVA_HOME, чтобы указать на JDK 8. (Упоминается во многих ответах ранее.) И
  2. Удалите (!) JDK 11 из PATH, так как выяснилось, что, несмотря на отображение пути JAVA_HOME, указывающего на JDK 8, Cordova фактически получила доступ к JDK 11, который был включен в PATH, что привело к сбою проверки версии Java.

Ответ 29

Даже если я правильно разместил все переменные пути, я все равно получил это сообщение.

После много копания я понял, что моя IDE (webstorm 19.x) связана с Java 11. Прочитав это: https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under помог мне переключить IDE обратно на Java 8, что решило проблему для меня.

Ответ 30

Для пользователей Ubuntu я смотрел ответы, но мне потребовалось время, чтобы собрать решения. Для дальнейшего использования удалите установку sudo по умолчанию с помощью команды

sudo rm -r /usr/lib/jvm/jdk10.0.2

замените вышеупомянутый jdk своей версией, которую вы установили, у меня была 10.0.2! Тогда зайдите на сайт оракула и скачайте tar.gz отсюда. Затем распакуйте ваш файл в home папку, используя код ниже, используя терминал

tar zxvf jdk-8u201-linux-x64.tar.gz

Замените свой Jdk, но используйте jdk1.8, так как это необходимо для Cordova, как показано выше. Затем установите переменные среды, используя код ниже

gedit ~/.bashrc

Откроется текстовый редактор и добавьте этот экспорт. Он будет работать после перезагрузки компьютера

export JAVA_HOME=/home/abrsh/jdk1.8.0_201

Здесь в приведенном выше коде abrsh - мое имя пользователя, а jdk1.8.0_201 - папка, которую я извлек ранее, используя tar zxvf