什么是扩展类加载器?

  • Post category:Java

扩展类加载器是Java虚拟机的标准类加载器之一,负责加载JRE的扩展类库。扩展类加载器是Java虚拟机类加载器体系中的第二个类加载器。在Java虚拟机启动时,扩展类加载器会从sun.boot.class.path和java.ext.dirs系统属性所指定的路径中加载类。

使用扩展类加载器的步骤:

  1. 编写类代码并打包成jar文件。

  2. 将jar文件放置至JRE的扩展类库路径下。

  3. 编写测试类代码,引用jar文件里面的类。

  4. 执行测试类。

示例1:

假设有一个项目,里面有个名为MyExtClass的类,需要使用扩展类加载器进行加载。首先,在项目根目录下新建名为test-ext的文件夹,并将MyExtClass.java编译后的class文件和所有依赖的jar包都放到test-ext文件夹下。

然后,在JRE的扩展类库路径中(具体路径可以通过java.ext.dirs系统属性获取),创建一个名为mylib.jar的文件,将test-ext文件夹下的所有文件打包成mylib.jar。

最后,在测试类中依赖MyExtClass,并且执行测试即可。

示例2:

假设有一个项目,需要使用某个第三方jar包。通过查看该jar包的文档,发现该jar包需要依赖于另外一个jar包A。为了能正常加载该jar包,需要先将依赖的jar包A放入JRE的扩展类库中。

首先,在依赖jar包A所在目录下新建名为test-ext的文件夹,并将jar包A和所有依赖的jar包都放到test-ext文件夹下。

然后,在JRE的扩展类库路径中,创建一个名为mylib.jar的文件,将test-ext文件夹下的所有文件打包成mylib.jar。

接着,在项目中引用第三方jar包,执行测试类即可。

总体来说,使用扩展类加载器就是将依赖的类库打成jar包,放置到JRE扩展类库路径下,然后在应用中引用相应的类,就可以实现扩展类加载器的功能。