一般我们在安装一些开发环境或者库的时候,会要求手动配置环境变量之后再开始使用,特别是一些没有交互界面,只能通过命令行运行的应用。那么到底是为什么要指定环境变量呢。首先,环境变量是在操作系统中的一个具有其特定名称的路径对象,它包含了一个或者多个应用程序所将使用到的路径信息。例如,在windows和linux操作系统中的path环境变量,当通过系统来运行一个程序,而此时却没有指定想要运行的程序所在的完整路径时,系统除了在当前路径下面寻找此程序外,还将到path中指定的路径去寻找。因此,用户是通过设置环境变量,来更方便更准确的来运行相应的程序。

我们通过一个具体的应用场景来理解:毫无疑问,想要运行一个软件,我们必须知道其启动程序程序的位置,同样的在命令行输入一个命令,计算机需要知道命令所在位置,否则会提示没有此命令。

win + R 打开“运行”,是我们常用的应用

当我们输入“notepad”打开记事本程序时,操作系统会去环境变量已保存的路径中查找是否存在notepad程序。

如果没有配置好环境变量,我们就必须告诉操作系统绝对路径:”C:\Windows\notepad”

就jdk而言,在初次安装后,为了更加方便准确的使用jdk相关程序,需要配置环境变量。或者是在安装了新版本的jdk之后,使用java -version命令查看,发现jdk还是之前的版本,主要也是因为环境变量配置的问题。通常情况下,我们需要配置如下三个变量,可以直接配置到系统变量中而不是用户变量中:

JAVA_HOME:指向Jdk的安装目录,作用是一些基于Java开发所用到的工具程序,比如tomcat,Eclipse。

Path:指向jdk安装目录下的bin目录,作用是指定命令搜索路径,bin目录下有编译、启动(javac/java)等命令,为了任何目录位置下都可以直接输入命令,而不用输入长长的路径了。如果配置了JAVA _HOME ,直接把%JAVA_HOME%/bin追加到PATH中即可。

CLASSPATH:在于告诉Java执行环境,在哪些目录下可以找到我们所要执行的Java程序所需要的类或者包。不过在JDK1.5之后的版本完全可以不用设置classpath环境变量就能正常运行程序。

弄懂了环境变量的作用之后,以后再遇到要配置环境变量的时候,就知道为什么要配置了,以及应当将哪个文件夹路径配置为环境变量。而不是看着官方给的安装步骤,机械式的完成这个过程。对于里面的原理也更加通透。