path
在windows中有一个环境变量,名字为path
在DOS命令窗口下的命令 如ipconfig 实际上都是一些exe文件,之所以输入ipconfig就可以运行,是因为path中包含了ipconfig.exe的路径,输入ipconfig+回车即可在对应路径下查找到ipconfig.exe并运行它。
所以要想直接在DOS命令窗口下使用javac来直接编译源代码,则必须在path中写入javac.exe的路径
classpath
首先看一下Java HelloWorld 命令的运行过程
第一步:会先启动JVM
第二步:JVM启动之后,JVM会去启动类加载器classloader。类加载器的作用是加载类,本质上是去硬盘上找相应的字节码文件,
第三步:如果对应的字节码不存在则报错,存在的话,类加载器则会将字节码文件加载到JVM里,由解释器将字节码解释为二进制信息,由操作系统实行与硬件的交互。
总体来说就是JVM ------》类加载器 -------》解释器-------》操作系统
类加载器默认是在当前目录下找字节码文件
那么能不能给类加载器指定一个路径,让类加载器去制顶的路径下查找字节码文件呢?
答案是可以!但是我们需要设置一个环境变量,叫做:classpath!
classpath环境变量是java特有的。classpath=A路径;B路径;C路径.......
classpath是一个变量名,
A路径;B路径;C路径;.....是变量值
这里注意一点:配置了classpath之后,类加载器只会去配置的目录下找字节码文件。
拓展:
JDK自带了三个类加载器
启动类加载器
去C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar下加载类
rt.jar中都是JDK最核心的类库
扩展类加载器
去C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\*.jar下加载全部jar文件
应用类加载器
去classpath寻找类加载
java中为了保证类加载的安全,使用了双亲委派机制:优先从启动类加载器中加载,这个称为“父”,再从拓展类中加载,这个称为”母“。双亲委派,如果都加载不到才会考虑从应用类加载器中加载。直到加载到为止
本文介绍了Windows中的PATH环境变量作用,通过该变量,DOS命令窗口可以执行像ipconfig这样的命令。对于Java,要直接使用javac,也需要将javac.exe路径加入PATH。同时,文章详细阐述了Java的类加载过程,包括类加载器的层次结构和classpath环境变量的重要性。classpath用于指定类加载器查找字节码文件的路径。JVM启动时,类加载器遵循双亲委派机制加载类,从启动类加载器开始,找不到时再由其他类加载器尝试。此外,文章还提及了JDK自带的三种类加载器及其加载路径。
2915

被折叠的 条评论
为什么被折叠?



