在oracle官网下载完JDK后,还不能立马使用,需要配置环境变量。许多人都知道需要配置环境变量,但时间久了,并不理解为什么要配置环境变量。下面将介绍配置环境变量的原理:

       关于java的环境变量,一共有三种:1. path路径  2. JAVA_HOME路径   3. classPath路径

1. 首先介绍下载后JDK的目录结构,先了解JDK的结构可以更好的理解配置环境变量的作用:

JAVA程序换路径之后运行不了 java路径配置_java

                                                                       图一

以上该图是下载安装后的JDK目录结构:其中,bin文件夹:中存放的是JDK所使用的工具(如:javac.exe编译工具、java.exe运行工具等)。include文件夹:包含了其他语言写的程序。jre文件夹:包含运行环境(就是指JRE,该文件夹里面包含JVM)。lib文件夹:包含了人家写好的所有Java类。src.zip压缩文件:存放java语言的源代码(因为java是开源的,开放源代码)。

默认的安装路径为:C:\Program Files\Java\jdk1.8.0_131(jdk1.8.0_131指的是文件夹。如下载中更换盘符以及文件夹,则路径和该路径不同,但打开后的文件夹里的内容和上图相同)

当不配置环境变量所遇到的问题:

       根据上面描述,我们可以知道,JDK中除了JRE外,最重要的是bin文件夹,因为里面有编译和运行java程序所需要的工具(javac.exe和java.exe)。当下载完jdk后,不配置环境变量的时,可以在电脑中任何盘符下创建java文件,里面写入java程序,之后,将java程序编译。但此时遇到这样的两个问题:1. bin文件夹中的编译工具双击是黑色对话框,一闪而过,因为编译工具是在doc命令窗口中才能使用。 2. 想要利用编译工具去编译写好的java源文件,但源文件所在的路径与编译工具不在一起,无法编译。

2.解决源文件与编译工具不在一起的办法(配置环境变量)

        办法思路:为了让工具在当前电脑的任何一个位置都可以使用,将jdk中bin文件夹中的工具放置在电脑中的某一个位置,这个位置是当前电脑所有目录都可以共同访问到的位置。

       2.1 配置Path变量:

 首先右键单击我的电脑→属性→高级系统设置→高级→环境变量。找到后,如下图所示:首先说明:该图的上半部分是用户变量,下半部分是系统变量,系统变量指的是如果在该电脑中存在多个用户(可以设置),那么所有用户都可以使用这些系统变量。鉴于我们一般的电脑只有我们本人使用,所以只在上面的用户变量中配置即可。

JAVA程序换路径之后运行不了 java路径配置_环境变量_02

                                                            图二

在win10系统中,点击用户变量里的Path(系统中默认就有这个Path),点击编辑,可以看到如下所示的列表:

JAVA程序换路径之后运行不了 java路径配置_JAVA_03

                                                    图三

点击新建,将安装jdk的路径(再写上bin文件夹)写入进入,点击确定即可。如采用上面默认安装的路径,则在新建的里面写入:C:\Program Files\Java\jdk1.8.0_131\bin   (注意:这时比原来安装jdk的路径后多加了bin文件夹的路径,因为主要就是使用bin文件夹中的工具)。如安装jdk的路径不是默认路径,则只需更换jdk的安装路径,后面再加上bin文件夹的路径即可,如我电脑上的jdk路径为:D:\Java (即D盘下面的java文件夹下)    则在此新建里面写入D:\Java\bin就行了。

其实到这里为止,环境变量已经配置完成了,在doc命令行中已经可以编译和运行java程序,但为什么还有classPath和JAVA_HOME这两个变量。

     2.2 Path变量、classPath和JAVA_HOME三个变量的作用:

                    配置Path变量的作用:让工具可以在任何位置都可以使用

                    配置classPath变量的作用:不管源文件在哪,经过编译后生成的字节码文件(.class文件)都统一的存储在配置的目录下。(因为若不配置此变量,默认的字节码文件和源文件放在一起。而不是将所有字节码文件统一放在一起)

                   配置JAVA_HOME变量的作用:目的是采用相对路径的写法,让上面配置的Path里的路径写法变得简单。(如:以上面默认路径为例,在JAVA_HOME变量中写为:C:\Program Files\Java\jdk1.8.0_131。则在Path变量中新建的里面只需要写入:%JAVA_HOME%/bin。而不是向上面那样,将完整路径写入。这里的%JAVA_HOME%就是指代JAVA_HOME变量中的值。

       2.3 配置JAVA_HOME变量:

            还是上面的步骤,点击到配置环境变量的界面(如上面图二所示)。只不过这时先不点击Path,而是直接在用户变量下面点击新建,创建一个新的环境变量。

JAVA程序换路径之后运行不了 java路径配置_JAVA_04

                                                                   图四

上面图四是按照jdk默认安装路径的配置方法,先创建一个JAVA_HOME变量,里面写入jdk安装的目录:C:\Program Files\Java\jdk1.8.0_131。点击确定后,就创建完成。

然后再点击Path,编辑,在Path里面新建一个路径,里面写入%JAVA_HOME%/bin。

注意:在Path下面如果采用上面2.1步骤的方法,就不需要再配置JAVA_HOME变量。如采用2.3创建JAVA_HOME的方法,则在Path中就不能按照2.1步骤中的方法。即配置Path只能采用其中一种。推荐采用第二种(2.3步骤中的创建JAVA_HOME方法)。

JAVA程序换路径之后运行不了 java路径配置_java_05

                                          图五

以上图五则是在Path中配置的路径。点击确定即可。

若不是采用jdk安装的默认路径,则在图四中改为jdk的安装路径就行了,如我的电脑上将jdk安装在D:\Java(即D盘下面的java文件夹下),则图四的步骤结果图则如下图六所示:

JAVA程序换路径之后运行不了 java路径配置_环境变量_06

                                                                        图六

       2.4 配置classPath变量:

 至于classPath变量,该变量的作用上面已经提过:不管源文件在哪,经过编译后生成的字节码文件(.class文件)都统一的存储在配置的目录下。(因为若不配置此变量,默认的字节码文件和源文件放在一起。而不是将所有字节码文件统一放在一起)。而我们一般是想让字节码文件和源文件放在一起(可以方便让源文件和字节码文件相对应),而不想让所有的字节码文件统一到一起,因此,这个变量可以不用配置。

3. 测试

最后,可以通过doc命令测试是否配置成功。点击Win+R,输入cmd,打开命令提示符。首先输入java,按回车,若出现下面图片内容所示,则配置成功:(也可以在命令行中切换到任何盘符下,输入java,出现效果一样)

JAVA程序换路径之后运行不了 java路径配置_环境变量_07

                                                                                   图七:在C盘符下的效果

JAVA程序换路径之后运行不了 java路径配置_环境变量_08

                                                                             图八:在E盘符下的效果

接着,在命令行中输入java -version(注意:中间有空格)。若显示jdk的版本号,则说明配置成功。

JAVA程序换路径之后运行不了 java路径配置_字节码_09

                                                                                                     图九