工作环境:
开发电脑:macbook pro 2015
IDE: IntelliJ IDEA 2018
问题描述:
// 环境变量配置后,这里获取不到,为null
System.getenv("xxxx");
原因分析以及解决方法
- Mac系统的环境变量,加载顺序为:
/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
其中/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
- 在 ~/.bash_profile 下面配置了如下:
C_VERSION=0
export C_VERSION
一般环境变量想生效的话,都是重启生效;如果想立即生效,则只需执行如下语句:
source .bash_profile
- 环境变量配置完成以后,通过命令重启Idea即可
/Applications > open IntelliJ\ IDEA.app
如果上述执行完成以后还是不生效,那肯定是装了zsh的缘故,因为安装zsh,~/.bash_profile就不会被执行,解决办法如下:
1. vim ~/.zshrc 编辑文件,将环境变量添加到该文件中即可
2. vim ~/.zshrc 编辑文件,添加 source ~/.bash_profile即可,这样~/.bash_profile配置的环境变量同样有效!