在学习java的时候需要配置环境变量,但是为什么需要配置path和classpath这2个环境变量呢?
(1) 首先,搞起清楚path这个环境变量的作用。我们cmd到dos命令窗口的时候,输入ipconfig。
其实它调用的是存放在某个目录下面的ipconfig.exe程序,那么操作系统如何知道ipconfig程序存放在哪个目录下的呢?
这时候我们用set path的命令,就能看到很多目录,用;隔开。(如下所示)
#################################################
Path=D:\oracle\product\10.2.0\db_1\bin;E:\devSoft\Java\jdk1.6.0_26/bin;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows
;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\devSoft\TortoiseGit\bin;E:\devSoft\TortoiseSVN\bin;E:\devSoft\Git\bin;E:\data
bases\mysql5\bin;E:\devSoft\python;E:\devSoft\Subversion\bin\bin;E:\AppServ\Apache2.2\bin;E:\AppServ\php5;E:\AppServ\MySQL\bin;E:\javaEELib\apache-mav
en-3.1.1\bin;E:\devSoft\python;D:\soft\DBank\ClickUp;D:\soft\DBank\ClickUp;E:\devSoft\Subversion\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
#################################################
它会先去D:\oracle\product\10.2.0\db_1\bin这个目录下面去找ipconfig程序,如果没找到,一直往下找,以此类推,把所有的目录都找一遍。
如果一直找不到则报错,找到了就执行程序。
那么我们将%JAVA_HOME%配置到path中也是这个原因,这样的话,我们就能调用%JAVA_HOME%/bin该目录下面的java.exe和javac.exe程序了。
(2) 当我们执行“java Test”这样的命令时,会启动Java虚拟机,java虚拟机会寻找一个名为Test.class的文件,
然后由类装载器装载这个类,那么问题就是类装载器究竟要到哪个目录里去寻找Test.class这个文件呢?
这个时候classpath就起作用了,classpath值的设置方式和path类似,
都是一系列的目录(当然还可能包括jar文件,其实jar文件也是目录,目录里面有很多的class文件),
java虚拟机就是到这些目录当中去寻找所需要的class文件。
我们使用set classpath的命令,可以看到我们设置的classpath值。(如下所示)
#################################################
CLASSPATH=.;E:\devSoft\Java\jdk1.6.0_26\lib;E:\devSoft\Java\jdk1.6.0_26\lib\dt.jar;E:\devSoft\Java\jdk1.6.0_26\lib\tools.jar
#################################################
比如说在我的c:\src目录当中有一个Test.java文件,编译过后生成了Test.calss文件。
这个时候我们想执行这个文件,就要执行“java Test”命令,类装载器会从classpath所指定的目录当中去寻找Test.class这个文件,
如果在classpath所指定的第一个目录当中没有找到,就到第二个目录去找,直到找到为止,如果在所有的目录当中都没有找到,就会报出一个错误。
在一般的教科书上,都会让学生把classpath的值设置为“.”,这是因为“.”代表的是当前目录,什么叫当前目录呢?
#################################################
C:\src>java Test
#################################################
当打开命令行时,在“>”之前的目录就是当前目录,也就是说在c盘的src这个目录下执行“java Test”命令,
java虚拟机的类装载器就会在c:\src下寻找Test.class文件。
相关文章
- 10-05spring 配置中相关属性的含义:
- 10-05开发路程(6):Web.config配置文件中的属性add,key,value含义
- 10-05使用 SAP Cloud SDK 开发应用时,如何通过环境变量的配置避免硬编码
- 10-05在Mac开发环境Laravel Valet中配置运行Flarum论坛系统的方法详解
- 10-05Elasticsearch7.10 开发中配置伪集群的TLS和身份验证(基础)
- 10-05shiro(四)项目开发中的配置、
- 10-05基于Java spring框架的微信企业号开发中关于js-sdk的配置
- 10-05vue中配置环境变量,开发环境、测试环境、生产环境,
- 10-05在eclipse中配置spark 0.9.1源码的开发环境
- 10-05boost 操作系统相关的库- program_options系统 (命令行,配置文件,环境变量中解析)