度娘:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。"
Why?为什么配置环境变量
先安装的是JDK(Java Development Kit /Java语言开发工具包) ,其中包括JRE,JDK中的JRE包括client和server端,安装完JDK后,会开始安装JRE (Java Runtime Environment,Java运行环境)如果电脑上没有JDK ,但是有JRE那么也表示可以进行Java程序的执行,只不过不能开发而已。但是单独的JRE中只包含client端。
Java程序开发重点要使用两个命令:java,javac,不是Mac、windows某个系统特有,配置目的就是告诉系统终端这两条指令调用相应的.java 和.class文件。那终端怎么找呢?就是通过环境配置。
2.Mac系统的环境变量,加载顺序为:
a. /etc/profile|1
b. /etc/paths
c. ~/.bash_profile
d. ~/.bash_login
e. ~/.profile
f. ~/.bashrc
其中a和b是系统级别的,系统启动就会加载,其余是用户接别的。c,d,e按照从前往后的顺序读取,如果c文件存在,则后面的几个文件就会被忽略不读了,以此类推。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。这里建议在c中添加环境变量,以下也是以在c中添加环境变量来演示的。
查看本机jdk所在位置 /usr/libexec/java_home -V
bogon:~ LittleP$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
10.0.1, x86_64: "Java SE 10.0.1" /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
bogon:~ LittleP$
环境变量(就是配置本机用哪个版本的JDK), 配置
~/etc/profile文件
/**
* 或者配置下面的配件
* 区别是./~bash_profile会在系统更新时失效
*/
./~bash_profile文件
image.png
/**
* 我自己配置的Java环境变量
*/
PATH=$PATH:/usr/local/mysql/bin
export MAVEN_HOME=/Users/LittleP/Documents/maven-3.6.1
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home"
CLASS_HOME="$JAVA_HOME/lib"
PATH=".$PATH:$JAVA_HOME/bin"
export JAVA_HOME
export CLASSPATH
export PATH