0%

Mac 下环境变量规则及管理

Mac系统的环境变量,加载顺序

  • a. /etc/profile

  • b. /etc/paths

  • c. ~/.bash_profile

  • d. ~/.bash_login

  • e. ~/.profile

  • f. ~/.bashrc

  • g. ~/.zshrc

其中ab是系统级别的,系统启动就会加载,其余是用户级别的。c,d,e按照从前往后的顺序读取,如果c文件存在,则后面的几个文件就会被忽略不读了,以此类推。
~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
~/.zshrc没有上述规则,它是zsh shell打开的时候载入的。
这里建议在c中添加环境变量,以下也是以在c中添加环境变量来演示的。

添加环境变量

比如添加 maven 环境变量
编辑 ~/.bash_profile文件

1
vim ~/.bash_profile

添加环境变量

1
2
export M2_HOME=/opt/apache-jmeter-5.0
export PATH=$PATH:$M2_HOME/bin

生效环境变量

1
source ~/.bash_profile

使用zsh shell

~/.zshrc中加入如下内容

1
2
3
...
source ~/.bash_profile
...

这样的话,在每次打开 zsh shell 的时候,都会对 ~/.bash_profile 中的环境变量进行初始化生效

MacJAVA_HOME设置,适用于通过pkg包直接安装的java

  1. 检查Java是否已经安装成功

    1
    2
    3
    4
    5
    # taoyi @ taoyiDSC000331 in ~ [15:30:28] 
    $ java -version
    java version "1.8.0_251"
    Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
    Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

    以上输出即说明Java已经安装成功了

  2. 查看java指令文件的位置

    1
    2
    3
    4
    5
    6
    # taoyi @ taoyiDSC000331 in ~ [15:35:22] 
    $ which java
    /usr/bin/java
    # taoyi @ taoyiDSC000331 in ~ [15:36:13]
    $ ll /usr/bin/java
    lrwxr-xr-x 1 root wheel 74B 7 7 01:46 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

    从以上输出可以知道,/usr/bin/java是一个链接文件,实际指向/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java这个文件。

  3. 获取java实际安装位置

    1
    2
    3
    4
    5
    # taoyi @ taoyiDSC000331 in ~ [15:36:21] 
    $ cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
    # taoyi @ taoyiDSC000331 in /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands [15:44:24]
    $ ./java_home
    /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

    从以上可以看到,java的实际安装位置为/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk,实际的HOME位置为/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

  4. 设置JAVA_HOME环境变量

    1
    2
    export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home"
    export PATH="$JAVA_HOME/bin:$PATH"

    根据使用的终端命令的不一样,把以上内容添加到对应的环境变量文件中,如果使用的是原生的bash终端,就把内容添加到~/.bash_profile中,如果使用的是zsh终端,就把内容添加到~/.zshrc
    最后执行source ~/.zshrc命令,使刚才的设置生效。