序言
这个跟类加载有关.
其它的没啥好说的,直接说重点吧
重点我们安装JDK后会有两个目录一个是JDK,一个是JRE.如下图所示:
- JDK: 这个是我们开发时需要往Eclipse或者Idear中引入的,里面主要包含了编译器,即把Java文件编译成Class文件的相关Jar.以及开发的过程所需要的一些工具Jar. 同时里面也包含了JRE
- JRE: 这个是我们部署在Linux上运行Java工程的,主要是用于运行Class文件.(其实一般我们的服务器也是配置的JDK里的JRE)
这两个文件夹的中有3个lib,而lib顾名思义就是我们开发或者运行Java工程时所学要的包.(这里说下他们的区别)
- D:\Java\jdk1.8.0_341\lib : JDK下的lib包括java开发环境的jar包,是给JDK用的,例如JDK下有一些工具,可能要用该目录中的文件。例如,编译器等。
- D:\Java\jdk1.8.0_341\jre\lib : JDK下的JRE下的lib是开发环境中,运行时需要的jar包。最典型的就是导入的外部驱动jar包。
- D:\Java\jre1.8.0_341\lib : JRE下的lib只是运行java程序的jar包,是为JVM运行时候用的。包括所有的标准类库,和扩展类。
另外我们在Idear导入JDK后可以发现,IDE会自动加载JDK下的JRE下的如下两个文件夹下的Jar
如上(会自动加载JDK下的JRE下的如下两个文件夹的文件):
- D:\Java\jdk1.8.0_341\jre\lib :jvm的主要JAR
- D:\Java\jdk1.8.0_341\jre\lib\ext 我们的项目额外需要的JAR可以放到这里,比如数据库的驱动(但是现在都用Maven了 ,不会把额外的Jar包放到这个目录下了cuiyaonan2000@163.com)
为啥子没有引入JDK下的lib包文件呢,因为IDE自带的有