环境变量
以前在下载配置开发工具或者语言的时候,都遇到过配置环境变量,往往都是跟着别人的步骤来,期间一直不太了解环境变量是什么,最近有遇到了这个,下面是我自己通俗的理解
变量就是一段存储单元,里面可以取值赋值,环境可以理解为目录路径。我们把bin路径添加到环境变量里面。在命令行输入命令,比如HelloWorld(也就是可执行程序),系统会在环境变量里面检索,当检索到bin目录下,刚好有HelloWorld.exe这个可执行文件,那么就会执行。如果检索完了都没有,就会提示下面的不是内部或者外部命令
命令就是一段可执行程序,像dir help 这些命令就是属于内部的,系统自带的,不需要我们去配置环境变量,外部的就是我们自己在环境变量里面配置的。
系统变量和用户变量
环境变量=系统变量+用户变量
可以把系统变量理解为底层的,系统上面可以有多个用户,在a用户配置用户变量之后切换b用户,之前配置过的就不起作用了,系统变量则是对所有用户都起作用,且会覆盖同名的用户变量,所以我们通常会在系统变量里面配置,避免切换了用户导致不必要的麻烦
系统变量
这里介绍下系统变量里面的Path,Path指定了命令(也就是程序)的查找路径,我们把上面说到的bin添加到Path里面,系统对Path的多个值逐步检索,检索到bin目录下的时候,发现有HelloWorld.exe,然后就会执行,后面不再检索下去。
检索顺序:进入cmd,系统会先在当前目录下进行检索,然后再到系统变量,再到用户变量,找到了就停止检索,最后找不到就提示没有该命令。这时候就可以理解为什么系统变量会覆盖用户变量里面同名同值的变量了吧。
在系统变量面自己配置的变量
在配置Java的时候,我在系统变量下面新建了一个JAVA_HOME,然后填入JDK的路径。
Path里面写入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin。我输入javac运行这个命令,类加载器就会从JDK\lib中加载所需要的类,(lib可以理解为Java的函数库,也叫jJava标准库)
这是自己在学习过程中遇到的疑惑并且去思考写出自己的理解,可能有理解不到位的地方,读到这的大佬发现有错误的地方希望可以指出