【JVM学习笔记】扩展类加载器
2024-10-06 19:19:03
扩展类加载器独有的特点,代码如下
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类正常加载了
最新文章
- test
- Windows Azure Storage (20) 使用Azure File实现共享文件夹
- .net 将List序列化成Json字符串
- iOS - SQLite 数据库存储
- 给dos命令“.bat”文件换图标
- Linux下的PostgreSQL简单安装手册
- 《zw版·Halcon-delphi系列原创教程》航母舰载机·视觉定位标志的识别代码
- 使用GDB调试Android NDK native(C/C++)程序
- HW4.13
- 《图解CSS3》——笔记(二)
- OC和JS的交互---JavaScriptCore
- Hibernate基础知识总结
- Jquery那些坑
- Java-NIO(五):通道(Channel)的数据传输与内存映射文件
- git报错:'fatal:remote origin already exists
- Mac下安装PEAR
- [.NET] 使用 Senparc.Weixin 接入微信公众号开发:简单实现自动回复
- Flask 里的WEB表单应用
- 配置Robot Framework 环境时如何查看wxPython是否成功安装
- centos6.6 安装MariaDB
热门文章
- Python3+Appium学习笔记03-启动app
- Java 类的重载/匿名类的使用/可变形参
- 前端自动化构建工具 Webpack——3 webpack配置文件的使用
- spark数据倾斜处理
- awk的妙用
- BZOJ 2982 combination 脑子+组合数学
- 018_linuxC++之_抽象类的引入
- kubernetes1.11.1 部署prometheus
- 关于phoenix构建hbase视图,更新hbase表后,视图表是否更新的验证
- LINUX 字体查看 字体更改mkfontdir