环境变量
概念
在Windows与Linux中,环境变量(environment variables)都广泛被使用,环境变量就是你给计算机一个文件夹的路径,计算机遇到需要访问【只知道文件名,不知道具体在哪个文件夹里面的文件】的情况,就去这个环境变量所指定的文件夹们里面挨个找一遍;或者计算机在执行命令时遇到一个以【环境变量/bin/文件名】给出的路径时,就把环境变量表中记录的此环境变量对应的值挨个去试一遍看哪个正确。
Windows系统中的环境变量
PATH
在Windows中,平时接触比较多,比较典型的就是path。环境变量path就是文件的路径,也就是指定一个目录。就比如说你直接给计算机一个程序名,它哪知道你要访问的是哪个文件夹下的文件,要它一个个去找,那不得累死。所以,当你给出一个没有路径的文件名时,Windows会给这个文件名前面套上路径path,即变成path\文件名,这个path是个变量,同时具有多个值,在高级系统设置里可以改。Windows会把path代表的多个值都去尝试一遍,看哪个是一个有效的地址。并且在前面的path值会被优先使用去查找。
例子
比如说,使用经典的Windows下的运行程序去打开测试.txt,这个文本文件在D:\finalshell与D:\steam下都有,即合法的绝对路径有两个,D:\finalshell\测试.txt与D:\steam\测试.txt。
如果path中没有这两个合法路径之一的路径的话,那就无法找到文件。
若path的多个值中有值能和文件名组成有合法路径,便可以成功访问文件,比如这里可以合成D:\finalshell\测试.txt与 D:\steam\测试.txt两个合法路径。并且,会先访问更靠前的变量值。所以访问了finalshell中的测试.txt。
其他环境变量
比如安装JDK的时候要用到Java_class与java_home这两个环境变量,java_class的值是你安装JRE1的文件夹的路径,java_home的值是你安装JDK2的文件夹路径。当写好的java的程序要运行时,会用到许多JRE与JDK中的文件,比如引入3的包4,都存在JRE中。
当IDE比如eclipse需要引入标准库,他就要去JRE文件中去找到这个标准库并复制过来链接到java程序中,eclipse不需要知道JRE文件所在的文件夹位置,只需要告诉系统要Java_class下的JRE文件中的某个库,系统就会给他找来,因为系统认识Java_class这个路径。
同理当在shell程序中使用javac5指令时,shell程序也是通过Java_home才找到javac这个软件。若是java_home这个环境变量没有配置好,cmd是找不到javac的。
java runtime environment,java运行时环境,存储大部分java标准库与JVM(java virtual machine , java虚拟机). ↩︎
java development kit,java开发者套件,有Java compiler(java编译器),java debugger(java调试器)与其他开发者工具,java的IDE(integrated development environment,整合开发环境)需要用这个,但有些IDE比如eclipse自己开发了这些,不用JDK,但还是需要JRE中的标准库。 ↩︎
import关键字 ↩︎
package ↩︎
java compiler ,java编译器,把java编译成.class文件(字节码文件),执行时交由对应平台的JVM(java virtual machine , java虚拟机)转换成可执行文件。 ↩︎