Значение JAVA_HOME неверно, и я не смог его изменить.

Вопрос или проблема

Значение JAVA_HOME неверно, и я не смог его изменить.

Сейчас я работаю над проектом на react-native, и при попытке запустить yarn android у меня возникает эта ошибка.

ОШИБКА: JAVA_HOME установлен на недопустимый каталог: /Users/olamidembp/.jenv/versions/system

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

Вот некоторые детали, которые могут помочь в отладке.
Когда я запускаю javac -version, я получаю следующий вывод: javac 17.0.9

Вот содержимое моего ~/.zshrc

export PATH=/opt/homebrew/bin:$PATH

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # Это загружает nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # Это загружает завершение bash для nvm
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
export PATH="$PATH:$GEM_HOME/bin"

# Добавьте RVM в PATH для сценариев. Убедитесь, что это последнее изменение переменной PATH.
export PATH="$PATH:$HOME/.rvm/bin"
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
eval "$(rbenv init - zsh)"

#ЭТО ДОЛЖНО БЫТЬ В КОНЦЕ ФАЙЛА ДЛЯ РАБОТЫ SDKMAN!!!
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"

Я пытался установить JAVA_HOME на несколько значений с использованием различных методов, но это не изменяется.

Я хочу иметь возможность использовать установленную у меня Java 17 для запуска yarn android.

Ответ или решение

Проблема, с которой вы столкнулись, связана с некорректной настройкой переменной среды JAVA_HOME. Ваша система указывает на неверный путь /Users/olamidembp/.jenv/versions/system, что вызывает ошибку при попытке запустить yarn android. Вот пошаговое руководство для решения этой проблемы:

Шаг 1: Проверьте установленную версию Java

Поскольку вы уже проверили версию Java с помощью javac -version и получили javac 17.0.9, это означает, что Java 17 установлена на вашем компьютере. Нам нужно выяснить, где именно она установлена.

Шаг 2: Найдите путь установки Java

Для этого можно использовать следующую команду в терминале:

/usr/libexec/java_home -v 17

Эта команда должна вернуть путь к установленной версии Java 17. Запомните этот путь, так как он потребуется для настройки JAVA_HOME.

Шаг 3: Обновите файл ~/.zshrc

Теперь откройте ваш файл конфигурации Zsh (~/.zshrc) в текстовом редакторе:

nano ~/.zshrc

Найдите строку с export JAVA_HOME. Измените её на тот путь, который вы получили на предыдущем шаге. Например:

export JAVA_HOME=$(/usr/libexec/java_home -v 17)

Шаг 4: Обновите окружение

Сохраните изменения в файле и закройте редактор. Затем выполните следующую команду, чтобы обновить ваши переменные окружения:

source ~/.zshrc

Шаг 5: Проверьте корректность настройки

Теперь снова выполните следующую команду, чтобы убедиться, что JAVA_HOME установлен корректно:

echo $JAVA_HOME

Это должно вернуть корректный путь к установленной Java 17. Также вы можете проверить это с помощью следующей команды:

java -version

Шаг 6: Запустите ваш проект

Теперь попробуйте снова запустить команду для вашего react-native проекта:

yarn android

Если все шаги выполнены правильно и Java установлена корректно, ошибка больше не должна возникать.

Дополнительные меры

  • Если вы продолжаете сталкиваться с проблемами, проверьте, не установлены ли другие версии Java через инструменты управления версиями, такие как jenv или sdkman. Убедитесь, что в конфигурациях этих инструментов указана правильная версия Java.
  • Если у вас установлены другие IDE (например, IntelliJ IDEA), убедитесь, что они также настроены на использование той же версии Java, что и ваша переменная JAVA_HOME.

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

Оцените материал
Добавить комментарий

Капча загружается...