深入解析环境变量

来源:互联网 发布:股票龙虎榜软件 编辑:程序博客网 时间:2024/06/08 12:00


要理解环境变量,首先要理解环境变量的含义:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如WindowsDOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

以前刚开始学校java的时候对环境变量有一定的了解,应为我们知道学习java的第一部就是安装JDK,而JDK是绿色的为了方便的使用JDK提供给我们的工具我们一般要配置环境变量,当时我并不理解环境变量的真正含义,只是老师叫我们按书上的操作吧环境变量配置好就ok啦。而当我学习了毕老师的java视频后对环境变量有了更加深刻的认识了。

为什么需要环境变量?

配置java环境变量是为了能在运行-cmd-中用java命令来编译和运行java代码。在我们的window系统中,安装的软件都有路径的。如果我们不配置环境变量的话,我们就只能在jdk的安装路径下才能运行。换到了其它的路径就不行了,系统就会提示找不到路径,为了能在任务路径下都可以运行jdk里面的工具,我们就要配置环境变量。

环境变量的规则:

在配置Java的环境变量的时候我们通常是是JDK里面的bin文件夹的路径加到path后面就行了,而我把path里面的所有内容复制出来看时发现了%systemroot%这个一点都不像路径的东西。

        

如上图,我问了度娘才明白%...%这个格式就相当于把路径定义成了一个变量,而这个变量里面的值可以随意改变但是不影响path里面的路径配置。这样我就理解了原来学习java的时候的为什么配置java有两种方法,第二种方法,吧jdk的安装目录自定义一个变量JAVA_HOME,再在path里面加上%JAVA_HOME%\bin了,这样一来以后jdk的位置改变了就不用在去改path里面的内容了,直接修改JAVA_HOME的值,避免了修改path可能出现的风险问题。

环境变量的调用规则:

通过运行程序出错,探索出错原因意外的发现环境变量的调用是有规则的,具体如下:

1.系统首先收索当前路径,如果当前路径没有再搜索path里面的路径。

通过set path=命令将当前的path值暂时置空

        

这时执行javac命令没有早到路径

        

而在javac的路径时可以执行javac这就证明了这点。

 

2.classpath环境变量则恰恰相反

classpath变量里结尾带分号和不带分号是不一样的

a.有分号,

        

虽然classpath配置为c盘但是有分号,c盘目录找不到还会继续寻找当前目录。

b.没有分号

        

demo.classd盘下却显示找不到demo类,这说明没有分号只搜索classpath下的内容而不搜索当前目录的内容,一下子我就理解的出学java时想破脑袋也想不通的问题。

通过以上的探讨,对当时为什么在配置classpath时一定要加上“.;”了。

终于理解了命令行执行java的过程了:调用虚拟机先在classpath路径下寻找要运行的文件,没有早到在返回到当前文件目录下寻找并执行。

 

0 0
原创粉丝点击