Я установил JAVA
на MacBook Air с помощью следующей команды:
$ brew cask install java
И обнаружил, что все файлы, которые предположительно находятся в /bin
, хранятся в другой папке с именем /Commands
по следующему пути:
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands
Итак, я определил JAVA_HOME
как показано ниже:
// Opened .bash_profile file
Hasans-Air:~ h_ajsf$ sudo code $HOME/.bash_profile
// Add the below to the .bash_profile file
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands
//Saved the file
//Updated env by:
Hasans-Air:~ h_ajsf$ source $HOME/.bash_profile
//Check for JAVA_HOME
Hasans-Air:~ h_ajsf$ echo $JAVA_HOME
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands
Затем во время работы flutter doctor
, чтобы проверить правильность всех настроек, я получил следующую ошибку:
[!] Android toolchain - develop for Android devices (Android SDK 28.0.3) ✗ Cannot execute /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/bin/java to determine the version
Что означает Flutter
ищет $JAVA_HOME/bin
, которого у меня нет в наличии! как можно заставить Flutter
игнорировать /bin
или как заставить brew cask
рассмотреть вопрос о добавлении /bin
Друг предложил удалить openJDK:
Hasans-Air:~ h_ajsf$ brew cask uninstall java --force
И замените его на java8, и настройте JAVA_HOME, как объяснено здесь как:
Hasans-Air:~ h_ajsf$ brew tap caskroom/versions
Hasans-Air:~ h_ajsf$ brew search "java*"
Hasans-Air:~ h_ajsf$ brew cask info java8
Hasans-Air:~ h_ajsf$ brew cask install java8
// Opened .bash_profile file
Hasans-Air:~ h_ajsf$ sudo code $HOME/.bash_profile
// Add the below to the .bash_profile file
export JAVA_HOME=$(/usr/libexec/java_home)
// Save the file
// Refresh the environment variables
Hasans-Air:~ h_ajsf$ source $HOME/.bash_profile
//Check for JAVA_HOME
Hasans-Air:~ h_ajsf$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home
Но я бы хотел использовать openJDK
на самом деле.