前言
学习java的第一步就要搭建java的学习环境,首先是要安装JDK,JDK安装好之后,还需要在电脑上配置"JAVA_HOME”、"path”、"classpath"这三个环境变量才能够把java的开发环境搭建好。在没安装过jdk的环境下,path环境变量是系统变量,本来存在的,而JAVA_HOME和classpath是不存在的。
一、配置JAVA_HOME变量
操作步骤(win7系统):计算机→右键“属性”→高级系统设置→高级→环境变量,如下图所示:
![eca65703daab422b5070aef8eee9af54.png](https://i-blog.csdnimg.cn/blog_migrate/c22325b07f78eb639af82969bad46b52.jpeg)
![793bc53469d767a3778418d48be93165.png](https://i-blog.csdnimg.cn/blog_migrate/2836accc81cb11c5e22e3a67685b2f1f.jpeg)
![0d5c30c1f9866d07bca789e56b0689e5.png](https://i-blog.csdnimg.cn/blog_migrate/2089b569ba80ab2cfa374ce7c8573c3a.jpeg)
![44383b2e7d92539532efae65f4912413.png](https://i-blog.csdnimg.cn/blog_migrate/717f0f26ad3febf31ee5dcae52c78102.jpeg)
点击系统变量下面的“【新建】”,弹出一个新建系统变量对话框,首先在变量名写上JAVA_HOME,顾名思义,JAVA_HOME的含义就是JDK的安装路径,,然后在变量值写JDK的安装路径,如这里设置的变量值是"D:Program Files (x86)Javajdk1.7.0",设置好变量值之后,点击【确定】按钮,JAVA_HOME环境变量就设置完成,如下图所示:系统变量中多了一个"JAVA_HOME"变量
![88fd1f36279577cf352e50802b0b237f.png](https://i-blog.csdnimg.cn/blog_migrate/75a0367c6670507282eef6f81487eb36.jpeg)
二、配置path环境变量
操作步骤(win7系统):计算机→右键“属性”→高级系统设置→高级→环境变量
![109ca6fa7bc493958bd35d194613181d.png](https://i-blog.csdnimg.cn/blog_migrate/0085128e6bd74dd5ea309fee7fb9e9e9.jpeg)
找到系统变量中的Path变量,点击【编辑】按钮,弹出编辑系统变量的对话框,可以看到,Path变量中设置有很多的目录,每个目录之间使用;(分号)隔开,将%JAVA_HOME%bin;添加到Path变量的变量值中,点击【确定】按钮,Path环境变量的就设置完成了,如下图所示:
![bd6f6f2432affefaa328e55b4552f96b.png](https://i-blog.csdnimg.cn/blog_migrate/e1ff3d17ee66cccdbbca08b559c419d8.jpeg)
三、配置ClassPath变量
设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序(.class文件),关于这个ClassPath变量,其实可以不用配置了,在网上经常看到Classpath=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%liboos.jar,但学习java这么久发现,不配置ClassPath也不影响java项目的开发和运行的。
四、JAVA_HOME变量、Path变量、ClassPath变量的说明
4.1. 设置JAVA_HOME变量的目的
一、为了方便引用,比如,JDK安装在D:Program Files (x86)Javajdk1.7.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;
二、归一原则, 当JDK路径被迫改变的时候, 仅需更改JAVA_HOME的变量值即可。
三、第三方软件会引用约定好的JAVA_HOME变量, 典型的就是tomcat服务器,如果不配置JAVA_HOME变量,那么tomcat服务器根本运行不起来
4.2. Path变量(重点说明)
操作系统用path的路径来找可执行程序(.exe程序),在windows下当我们敲任何一个命令时,实际上就是在执行一个可执行文件,如输入notepad命令就可以打开一个记事本
![5604f1c569319cd968207e65f5aa55a9.png](https://i-blog.csdnimg.cn/blog_migrate/2d5526175d1eafef5024e1baacdc399c.jpeg)
实际上是执行了c:Windows下的notepad.exe这个可执行文件,和用鼠标双击notepad.exe后能够打开一个记事本的效果是一样的
![2340c516c7ba00ddec304eabf7e0fa35.png](https://i-blog.csdnimg.cn/blog_migrate/488f3169fdc36abed5a38b4c83c27245.jpeg)
当在命令窗口敲一个命令时,系统就会去自动寻找这个命令对应的可执行文件(.exe),如果这个文件不存在,就当然无法执行这个命令了。这个可执行文件的根目录必须设置在path环境变量中。
4.3.在命令窗口显示path设置的环境变量
直接输入“echo %path%”命令就可以显示设置的path环境变量的所有根目录了,只要是根目录里面存在相应的.exe文件,敲入命令时就能执行这个相应的.exe文件。
![02997ba960046baa816e310d392019ea.png](https://i-blog.csdnimg.cn/blog_migrate/55d3fe5d3e60b403a9291894d92091e7.jpeg)
因为notepad.exe所在的Windows目录已经添加到了Path环境变量中了,这就解释了为什么输入命令notepad就可以打开一个记事本,所以前面配置java开发环境时,将%JAVA_HOME%bin添加到Path变量中的目的就是希望可以在命令行窗口下使用javac和java这两个命令来执行javac.exe和java.exe这两个可执行程序。
4.4.Classpath变量说明
使用javac命令编译.java文件时,如果需要其他的类,也是通过classpath去找的,
使用java命令执行.class文件时,执行的.class文件是通过classpath去找的。
classpath表示的是要查找的类所在的路径。
五、用户变量和系统变量的区别
![f943db2fda3cc83c6d9ec737f513726f.png](https://i-blog.csdnimg.cn/blog_migrate/b3685dc6621d9a3cb3b2fc774c751b2f.jpeg)
从上面的图中可以看到,环境变量中有两种变量,一种是用户变量,另一种是系统变量,那么这两种变量有什么区别呢?用户变量,顾名思义,是针对某一个特定的用户的,只对特定的用户有效,而系统变量,则对任何用户都有效。下面以配置Maven的开发环境来进行具体说明用户变量和系统变量的区别
添加MAVEN_HOME用户变量
![328c04292cdfba31c6e3a08d4c2de29e.png](https://i-blog.csdnimg.cn/blog_migrate/db7437c89feb6e0d7b7cfd4bc6039d00.jpeg)
点击用户变量的【新建】按钮,弹出新建用户变量对话框,输入要新建的变量名和变量值,点击【确定】按钮,新的用户变量就创建好了,如下图所示:
![ae322bea7f6b3caca63a94df83f0c669.png](https://i-blog.csdnimg.cn/blog_migrate/de7514f0ae201a1178173dca3350f87c.jpeg)
添加Path用户变量
![6cee3a19033009a4d54de11a02893411.png](https://i-blog.csdnimg.cn/blog_migrate/13426eb3c4e5bceb789cf573fb66c3dc.jpeg)
这里是在当前登录系统的gacl用户的用户变量里面添加了2个新的用户变量:MAVEN_HOME用户变量和Path用户变量,MAVEN_HOME变量和Path变量只对gacl用户有效,使用别的用户登录是无效的。
现在可以看到了,环境变量中存在了2个Path变量,一个是用户变量Path,一个是系统变量Path,
![f4afbecada71d74b32d5b84807a97904.png](https://i-blog.csdnimg.cn/blog_migrate/ec92b98209731d3f1065e3696e5e6883.jpeg)
那么当需要使用Path变量的值时,到底使用哪一个Path呢,怎么区分这两个Path呢?当需要使用Path环境变量时,操作,系统的做法是把用户自己创建的Path用户变量的值和path系统变量的值叠加在一起来使用,或者可以理解成操作系统会把Path用户变量的值加入到Path系统变量中,然后使用的时候使用的是系统变量的Path。
没有添加用户变量Path前,Path变量的值就是系统变量Path里面设置的值,如下图所示:
![b510fb2458e6f721e644115743fe3d51.png](https://i-blog.csdnimg.cn/blog_migrate/98eb794029485d63233145518c484034.jpeg)
添加用户变量Path后,Path变量的值=系统变量Path里面设置的值+用户变量Path中设置的值,如下图所示:
![ebfa529e9a32b143535ed3a0e3a5de31.png](https://i-blog.csdnimg.cn/blog_migrate/552bd33830f3b1d8c5d06b48d921e43d.jpeg)
在Windows下,环境变量不区分大小写,所以path变量名不区分大小写。