扩展类加载器独有的特点,代码如下

public class Sample {
}
public class Test {

    static {
System.out.println("Test static block");
} public static void main(String[] args) {
System.out.println(Test.class.getClassLoader());
System.out.println(Sample.class.getClassLoader());
}
}

在控制台运行,结果如下

D:\workspace-learn\common-learn\learn-jvm\target\classes>java -Djava.ext.dirs=./ com.learn.jvm.loader.Test
Test static block
sun.misc.Launcher$AppClassLoader@334dcfad
sun.misc.Launcher$AppClassLoader@334dcfad

可以看到,即使我们已经通过 -Djava.ext.dirs=./ 指定了扩展类加载器的加载路径,并且在该路径下能够找到Test类和Sample类,但是运行结果表明这两个类依然是由系统类加载器所加载的。

这是因为扩展类加载器只加载jar包

通过以下命令对Sample.class进行打包

jar cvf Sample.jar ./com/learn/jvm/loader/Sample.class

然后再次运行,结果如下

D:\workspace-learn\common-learn\learn-jvm\target\classes>java -Djava.ext.dirs=./ com.learn.jvm.loader.Test
Test static block
sun.misc.Launcher$AppClassLoader@397d812b
sun.misc.Launcher$ExtClassLoader@5eab4b89

可以看出,这次Sample类正常加载了

最新文章

  1. test
  2. Windows Azure Storage (20) 使用Azure File实现共享文件夹
  3. .net 将List序列化成Json字符串
  4. iOS - SQLite 数据库存储
  5. 给dos命令“.bat”文件换图标
  6. Linux下的PostgreSQL简单安装手册
  7. 《zw版·Halcon-delphi系列原创教程》航母舰载机·视觉定位标志的识别代码
  8. 使用GDB调试Android NDK native(C/C++)程序
  9. HW4.13
  10. 《图解CSS3》——笔记(二)
  11. OC和JS的交互---JavaScriptCore
  12. Hibernate基础知识总结
  13. Jquery那些坑
  14. Java-NIO(五):通道(Channel)的数据传输与内存映射文件
  15. git报错:'fatal:remote origin already exists
  16. Mac下安装PEAR
  17. [.NET] 使用 Senparc.Weixin 接入微信公众号开发:简单实现自动回复
  18. Flask 里的WEB表单应用
  19. 配置Robot Framework 环境时如何查看wxPython是否成功安装
  20. centos6.6 安装MariaDB

热门文章

  1. Python3+Appium学习笔记03-启动app
  2. Java 类的重载/匿名类的使用/可变形参
  3. 前端自动化构建工具 Webpack——3 webpack配置文件的使用
  4. spark数据倾斜处理
  5. awk的妙用
  6. BZOJ 2982 combination 脑子+组合数学
  7. 018_linuxC++之_抽象类的引入
  8. kubernetes1.11.1 部署prometheus
  9. 关于phoenix构建hbase视图,更新hbase表后,视图表是否更新的验证
  10. LINUX 字体查看 字体更改mkfontdir