Вопрос или проблема
Я пытаюсь запустить простой проект с cordova на MacOS Mojave 10.14.4:
скриншот ошибки
Я пытался изменить переменную окружения JAVA_HOME
несколькими способами:
export JAVA_HOME="`/usr/libexec/java_home -v '1.8*'`"
не помогает
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home"
не помогает
Я создал файлы ~/bash_profile
и ~/profile
и вставил эту строку в каждый из них:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home"
Затем я выполнил
source ~/.bash_profile
и также попробовал
soruce ~/.profile
И всё равно у меня была проблема с версией JDK.
Я сдался, пытаясь настроить Android JDK вручную, я скачал Android Studio и позволил ей всё настроить. После установки Android Studio я обнаружил, что ANDROID_HOME не определён, поэтому я открыл файл ~/.bash_profile
и изменил его:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home"
export ANDROID_HOME="$HOME/Library/Android/sdk"
export PATH="${PATH}:/$ANDROID_HOME/platform-tools:/$ANDROID_HOME/tools:/$ANDROID_HOME/tools/bin"
Из-за проблем с настройкой JDK я также сдался использовать cordova и перешёл на NativeScript, который не требует версию JDK 8. NativeScript чудесным образом подхватил новые системные переменные из файла bash_profile. Я всё ещё не понимаю, почему без Android Studio я не мог изменить системные переменные окружения.
Ответ или решение
Проблема, с которой вы столкнулись при работе с Apache Cordova на вашей системе macOS Mojave 10.14.4, связана с несовместимостью между установленной версией JDK и требованиями Cordova. Ваша ситуация – это распространённая проблема среди разработчиков, использующих Cordova для разработки мобильных приложений. Рассмотрим некоторые аспекты и возможные решения.
Описание проблемы
Cordova требует JDK версии 8 (обозначаемой как 1.8.*
), но на вашей системе установлена версия 11.0.2. Это является причиной сообщения об ошибке: "Requirements check failed for JDK 8 (‘1.8.*’)! Detected version: 11.0.2". Попытки изменить переменную окружения JAVA_HOME
не принесли успеха, так как Cordova по-прежнему обнаруживает версию 11, а не 8.
Решение проблемы
-
Удалите JDK 11: Если JDK 11 не требуется для других ваших проектов, вы можете просто удалить его, чтобы предотвратить конфликты.
-
Установите JDK 8:
-
Настройка переменной
JAVA_HOME
:
После установки JDK 8 убедитесь, что переменная окруженияJAVA_HOME
настроена правильно. Попробуйте выполнить следующую команду в терминале:export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
Для того чтобы изменения были постоянными, добавьте аналогичную строку в файл
~/.bash_profile
или~/.zshrc
(в зависимости от вашего терминала), после чего выполните команду:source ~/.bash_profile
или
source ~/.zshrc
-
Проверка версии JDK:
Убедитесь, что версия JDK изменена, выполнив команду:java -version
Если вывод будет показывать JDK 8, значит, переменная
JAVA_HOME
настроена правильно. -
Проверка конфигурации Cordova:
После выполнения всех вышеперечисленных шагов попробуйте снова запустить ваш проект Cordova:cordova prepare
Если всё настроено верно, ошибка должна исчезнуть.
Заключение
Если трудности с настройкой JDK продолжаются, рекомендуется рассмотреть альтернативные инструменты для разработки, такие как NativeScript, как вы уже сделали. Однако, если ваша цель — использовать Cordova, правильная установка и настройка JDK 8 — ключевой шаг к успешной разработке мобильных приложений. Не забывайте, что поддержка необходимой версии JDK и соответствующей конфигурации системы — залог успешной работы с платформой, такой как Cordova.