mac 运行RN项目报错 JAVA_HOME is set to an invalid directory

2,673 阅读1分钟

前言

最近换了新电脑,就重新建了一个RN项目,结果遇到了两个大坑。一下子一天就过去啦😭

环境变量配置

首先配置Java环境变量,按照网上的教程在.bash_profile中配置如下:

# Add Java Path
export JAVA_HOME="Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home"
export PATH=$PATH:$JAVA_HOME/bin

再配置Android studio 环境变量,如下:

# Add AndroidStudio Path
export ANDROID_HOME=~/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator

运行项目

进入项目目录,npm run android 运行项目,立马运行失败。 报错 JAVA_HOME is set to an invalid directory ,我就赶紧去查看环境变量。

echo $JAVA_HOME // 输出为空

发现配置没生效,很纳闷。重新 resouce .bash_profile ,再输出echo $JAVA_HOME,此时输出了Java安装路径。最后重新运行项目,还是报同样的错误,然后输出java环境变量依旧又是空。

最后请教的同事,才发现我用的命令行是zsh,zsh的配置文件是.zshrc。最后在这个文件中重新配置一下。就可以输出java路径啦。

bash模式的配置文件才是.bash_profile
zsh模式的配置文件是.zshrc

安装路径导致的问题

但是现在运行项目依旧报错。找了很久发现/users的用户目录里也有一个Library文件,而且在配置java环境变量时,Library资源库应该是位于根目录下面的。所以在JAVA_HOME的配置路径前面应该加个斜杠。

完整RN的环境变量配置如下:

# Add Java Path
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home"
export PATH=$PATH:$JAVA_HOME/bin

# Add AndroidStudio Path
export ANDROID_HOME=~/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator