![Java基础案例教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/527/35449527/b_35449527.jpg)
1.4 系统环境变量
在计算机操作系统中可以定义一系列变量,这些变量可供操作系统上所有的应用程序使用,被称作系统环境变量。在学习Java的过程中,需要涉及两个系统环境变量path和classpath,接下来分别对它们进行讲解。
1.4.1 path环境变量
path 环境变量是系统环境变量中的一种,它用于保存一系列的路径,每个路径之间以分号分隔。当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找该文件是否存在,如果不存在,会继续在path环境变量中定义的路径下寻找这个文件,如果仍未找到,系统会报错。例如,在命令行窗口输入“javac”命令,并按下回车,会看到错误提示,如图1-13所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0020-0015.jpg?sign=1738880282-YdAjc6r3emHlhlqNyeO17wL5hLgbdmwA-0-3aa67da351fc5827f868106cea74d4cc)
图1-13 找不到javac.exe命令
从图1-13的错误提示可以看出,系统没有找到javac命令。在命令行窗口输入“set path”命令,可以查看当前系统的path环境变量,如图1-14所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0020-0016.jpg?sign=1738880282-Doq0EGD943sm3H1PyzzdGlN66i924uo6-0-bf4e5b17b7aa53d8a10523ab98ca6ac4)
图1-14 查看path环境变量
从图1-14中列出的path环境变量可以看出,其中并没有包含“javac”命令所在的目录,因此操作系统找不到该命令。为了解决这个问题,需要在命令行窗口输入一行命令,将“javac”命令所在的目录添加至path环境变量中。命令如下所示:
set path=%path%;C:\Program Files\Java\jdk1.7.0_60\bin
其中,“%path%”表示引用原有的path环境变量,“C:\Program Files\Java\jdk1.7.0_60\bin”表示javac命令所在的目录。整行命令的作用就是在原有的path环境变量值中添加javac命令所在的目录。
再次输入“set path”命令查看path环境变量,结果如图1-15所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0021-0017.jpg?sign=1738880282-dGSws6zT96S2bYZRe2dZ0MNdxHwfxBrE-0-24ec47663c5d3e004c7af3486e0fca27)
图1-15 设置path环境变量
设置完path环境变量后,再次运行“javac”命令,图1-13的错误情况就不会再出现了,命令行中会显示“javac”命令的帮助信息,如图1-16所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0021-0018.jpg?sign=1738880282-IOtXxaGjPY54ubwttUggCCPfFinqxcUf-0-5c5ddae9b62ad4724d845228a99e9738)
图1-16 javac命令帮助信息
由于“java”命令和“javac”命令位于同一个目录中,因此在配置完path环境变量后,同样可以在任意的路径下执行“java”命令。
重新打开一个新的命令行窗口,再次运行javac命令,又会出现和图1-13一样的错误,使用“set path”命令查看环境变量,会发现之前的设置无效了。出现这种现象的原因在于,在命令窗口中,对环境变量进行任何修改只对当前窗口有效,一旦关闭窗口,所有的设置都会失效。因此,要想让环境变量永久生效,就需要在系统中对环境变量进行配置。让Windows系统永久性地记住所配置的环境变量。配置系统环境变量的步骤如下。
1.查看Windows系统属性中的环境变量
右键单击桌面上的【计算机】,从打开菜单中选择【属性】,在出现的【系统】窗口中选择左边的【高级系统设置】选项,然后在【高级】窗口中单击【环境变量】按钮,打开【环境变量】窗口,如图1-17所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0022-0019.jpg?sign=1738880282-kTwm4nG2vUxbj3O20JoAqu7Q10Qn4l3z-0-b8b32812736c1357ac2a41aeae19072b)
图1-17 环境变量窗口
2.设置path系统环境变量
在【环境变量】窗口中的【系统变量】区域选中名为“Path”的系统变量,单击【编辑】按钮,打开【编辑系统变量】窗口,如图1-18所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0022-0020.jpg?sign=1738880282-8jRT6mW5PO5M4QaamtKj41PrQsNz4TRN-0-ad92b5a8dd2bd2e8319f7b9636ca395d)
图1-18 编辑前系统变量窗口
在【变量值】文本区域内的开始处,添加“javac”命令所在的目录路径“C:\Program Files\Java\jdk1.7.0_60\ bin”,并在路径末尾用英文半角分号(;)结束,将其与后面的路径隔开,如图1-19所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0022-0021.jpg?sign=1738880282-HA5Sdq7fwW4QziGkys9rIrJ8YufdEaoP-0-bf0910e6209636692e3047adba1d6a05)
图1-19 编辑后系统变量窗口
添加完成后,依次单击打开窗口的【确定】按钮,完成设置。
3.查看和验证设置的path系统环境变量
打开命令行窗口,执行“set path”命令,查看设置后的path变量的变量值,如图1-20所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0023-0022.jpg?sign=1738880282-G921tZD5OWaww0ExQ3zo6526asfHiQJy-0-2eefe55e9d4a4b3511a3b5c4e7883ef6)
图1-20 查看path环境变量
从图1-20可以看出,环境变量path值的第一行已经显示出了配置路径信息。在命令行窗口中执行javac命令,如果能正常地显示帮助信息,说明系统path环境变量配置成功,这样系统就永久性地记住了path环境变量的设置。
1.4.2 classpath环境变量
classpath环境变量也用于保存一系列路径,它和path环境变量的查看与配置的方式完全相同。当Java虚拟机需要运行一个类时,会在classpath环境变量中所定义的路径下寻找所需的class文件和类包。
打开命令提示行窗口,进入 C 盘根目录下,然后执行“java HelloWorld”命令,运行之前编译好的Java程序,结果会报错,如图1-21所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0023-0023.jpg?sign=1738880282-w2DzTmPuOrtgIA8H84zYbIzTAE5TocXP-0-6dab383b9eb0e368742d6548af98465b)
图1-21 classpath环境变量
出现图中所示错误的原因在于,Java虚拟机在运行程序时无法找到“HelloWorld.class”文件。为了解决这个错误,首先来通过“set classpath”命令查看当前classpath环境变量的值,如图1-22所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0023-0024.jpg?sign=1738880282-gZFVoGVq63QaHRGdmDMsgltsgHc9BSXa-0-39312a5e6df63a503a9065e72fdc0aed)
图1-22 查看classpath环境变量
从图1-22中可以看出,当前classpath环境变量没有设置,为了让Java虚拟机能找到所需的class文件,就需要对classpath环境变量进行设置,在命令行窗口输入下面的命令:
set classpath=C:\Program Files\Java\jdk1.7.0_60\bin
再次执行“java HelloWorld”命令运行程序,会看到正确的结果,如图1-23所示。
![](https://epubservercos.yuewen.com/6CE3CC/18928169408773406/epubprivate/OEBPS/Images/figure-0024-0025.jpg?sign=1738880282-DnsYftnAFDqiCVaHBIBgu5VVQg0uloMD-0-1c1faaa216023e03926a12ea87cd84c0)
图1-23 运行HelloWorld程序
从图1-23可以看出,在命令窗口中设置classpath后,程序会根据classpath的设置,去其指定的目录中寻找类文件,所以程序可以正确执行。classpath 除了可以指定要执行类的路径外,还可以指定运行Java程序所需的标准类包的路径。JDK所提供的标准类包有两个,分别是dt.jar和tools.jar,它们位于JDK安装目录的lib文件夹下。在配置环境变量时,通常会将这两个JAR包配置到classpath中,其配置的方式非常简单,只需要在【环境变量】窗口中的【系统变量】区域单击【新建】按钮,在弹出的新建系统变量窗口中,在变量名的文本区域输入“CLASSPATH”,变量值的文本区域输入“.;C:\Program Files\Java\jdk1.7.0_60\ lib\dt.jar;C:\Program Files\Java\jdk1.7.0_60\lib\tools.jar”,单击【确定】按钮即可。在设置CLASSPATH变量时,必须在配置路径前添加“.;”(当前目录),用于识别当前目录下的Java类。
值得注意的是,在1.3小节中并没有对classpath环境变量进行设置,但在“C:\Program Files\Java\jdk 1.7.0_60\bin”目录下仍然可以使用“java”命令正常运行程序,而没有出现无法找到“HelloWorld.class”文件的错误。这是因为从JDK 5.0开始,如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。