windows环境中JDK环境变量配置详解

一、环境准备

Windows10
jdk-1.8

二、下载并安装JDK

到Java的官网下载JDK安装包,地址:jdk下载,选择一个适合自己的JDK版本下载并安装即可,具体流程不详述。

三、环境变量配置

  1. 右键桌面上“我的电脑”>>“属性”,在弹出的页面上点击“高级系统设置”。!1.png

  2. 在弹出的“系统属性”窗口中“高级”标签页下点击“环境变量”按钮。2.png

  3. 在弹出的“环境变量”窗口中,点击下方的“新建”按钮,在弹出的“新建系统变量”窗口中,新建一个名为“JAVA_HOME”的环境变量,变量值为Java的安装路径3.png

  4. 设置Path环境变量,该变量已经存在,所以在列表中选择Path,点击下方的“编辑”按钮,在弹出的窗口中添加如下信息:%JAVA_HOME%\bin,然后点击“确认”按钮即可。如图所示:4 2.png

  5. 在配置好环境变量后,可以进入cmd中检查Java是否安装正确,检查的命令为 java -version,如图所示:1.png

如果能正确的输出Java的版本和JVM版本信息,则说明Java安装正确。

四、JAVA_HOME、Path、CLASSPATH环境变量小结

Path

当我们安装完jdk之后,打开cmd(在非安装目录的路径下)输入javac、java,会提示找不到命令。我们需要将命令所在的路径添加到Path系统变量中,这时,系统就可以找到可执行文件了。
Windows在查找可执行文件是这样的:在终端输入java时,系统就会先在当前目录查找java程序,如果有就会执行java,否则就会在Path中指定的路径中找,因为我们在PATH配置了...\jdk\bin,系统会在这个路径下找到Java程序并执行。否则就提示找不到命令。Path的作用其实就是方便我们使用一些命令。

JAVA_HOME

JAVA_HOME里面的内容是JDK安装目录。其实不设置JAVA_HOME也是可以的,只要有Path就行了。但是设置JAVA_HOME可以方便在Path中使用、更新JDK目录。比如,jdk的安装路径是E:\jdk1.8.0_05,Path设置为E:\jdk1.8.0_05\bin,而当我们把JAVA_HOME设为E:\jdk1.8.0_05时,设置Path就可以写成%JAVA_HOME%\bin,以后当我们使用其他版本的jdk,就可以只修改JAVA_HOME的值,此外,当我们要使用Redis等组件时,也可以灵活使用JAVA_HOME做些改动。

CLASSPATH

这个参数,设为

.;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar

看清楚有两个分号,第一个前面只有一个点,表示的是当前目录,这个很重要,后面两个是两个第三方jar包,这个参数的值不包括标准类库和扩展类库的jar包,因为标准类库和扩展类库是默认加载的不需要设置,要设置额外的第三方类。
我要重点说一下这个参数,在我原来学java的时候,没太注意过这个值,在我回过头来,看这个参数的时候,发现它竟然可以不用设,,不设的话,java虚拟机会默认搜索当前路径,也就是你写的java程序所在的位置,也就相当于我们设的那个“.”号,但是如果你想用tools.jar或dt.jar里面的类怎么办?
这里有两种方法,一种就是前面讲的设置classpath,但是这个classpath必须要带上前面的“.”号,如果不带,只设置tools.jar或dt.jar的路径,虚拟机竟然不加载当前目录的类,也就是classpath把默认的classpath(也就是默认搜索当前路径)给覆盖了,不搜索当前路径了,所以,一定不要忘了那个点号。
第二种方法 就是在命令行中执行命令时,带上classpath 参数,
如我要加载,dt.jar这个包里面的类(编译test.java),我命令就要这样写 javac -classpath .;C:\java\lib\dt.jar test.java 也就是在参数classpath中加入需要的第三方类的的路径,但是在前面必须加一个“.”号,表示当前路径,我试了,如果不加它也找不到当前目录的类。
我比较喜欢不设置它,当真正用到第三方包的时候加个参数就行了。

Path与CLASSPATH 的区别

path是用来搜索所执行的可执行文件路径的,如果执行的可执行文件不在当前目录下,那就会依次搜索path中设置的路径。而CLASSPATH是用来告诉编辑器在那里寻找Java编译过程中所需的包和类所以其路径中配置的是lib目录下的tools.jar;

环境变量与系统环境变量

系统变量是环境变量的一种,环境变量一种仅本用户适用,另一种即系统变量整个系统的用户都适用,两者都可以在使用应用程序时提供快捷.一般在编辑java文件或者C#文件时需要修改,设计到多个文件夹之间的切换时也可以根据自己的需要设置。
简单的说就是,如果设置系统变量和用户变量,都叫做设置环境变量,设置系统变量时,该系统的所有帐号的用户都可以使用,但是设置用户变量时,其他的帐号登陆时就不一定可以使用。