10.2 自定义类加载器
2011-01-29 12:04
155 查看
p { margin-bottom: 0.21cm; }
自定义类加载器的类需要继承ClassLoader
类
重写findClass
方法
重写findClass
方法后
才能够正确的优先父类寻找
@Override
protected
Class<?> findClass(String name)
throws
ClassNotFoundException {
//
得到文件的路径名
String
fileName =
ClassDir
+
"//"
+ name.substring(name.lastIndexOf(
'.'
)+1)
+
".class"
;
try
{
//
加载这个文件
FileInputStream
fis =
new
FileInputStream(fileName);
//
定义字节数组流
ByteArrayOutputStream
bos =
new
ByteArrayOutputStream();
//
给文件解密
解密到
bos
里面
cypher
(fis,
bos);
fis.close();
//
得到字节数组
byte
[]
bytes = bos.toByteArray();
//
把一个字节数组生成
class
return
defineClass
(bytes,
0, bytes.
length
);
}
catch
(Exception e) {
e.printStackTrace();
}
return
super
.findClass(name);
}
自定义类加载器的类需要继承ClassLoader
类
重写findClass
方法
重写findClass
方法后
才能够正确的优先父类寻找
@Override
protected
Class<?> findClass(String name)
throws
ClassNotFoundException {
//
得到文件的路径名
String
fileName =
ClassDir
+
"//"
+ name.substring(name.lastIndexOf(
'.'
)+1)
+
".class"
;
try
{
//
加载这个文件
FileInputStream
fis =
new
FileInputStream(fileName);
//
定义字节数组流
ByteArrayOutputStream
bos =
new
ByteArrayOutputStream();
//
给文件解密
解密到
bos
里面
cypher
(fis,
bos);
fis.close();
//
得到字节数组
byte
[]
bytes = bos.toByteArray();
//
把一个字节数组生成
class
return
defineClass
(bytes,
0, bytes.
length
);
}
catch
(Exception e) {
e.printStackTrace();
}
return
super
.findClass(name);
}
相关文章推荐
- java类加载器学习2——自定义类加载器和父类委托机制带来的问题/JAVA类加载的委托模型/Java的委托
- JVM:编译加载机制与自定义类加载器
- 自定义类加载器的实现和使用?
- 自定义类加载器加载自定义类:能否加载自定义的java.lang.xxxxxx
- 刚学的:自定义类加载器
- 自定义类加载器的实现
- 自定义类加载器卸载后重新加载类 static 再次调用
- JVM高级特性与实践(九):类加载器 与 双亲委派模式(自定义类加载器源码探究ClassLoader)
- JVM高级特性与实践(九):类加载器 与 双亲委派模式(自定义类加载器源码探究ClassLoader)
- java虚拟机类加载机制、类加载器、自定义类加载器
- Java类加载器学习2——自定义类加载器和父类委托机制带来的问题
- java类加载器学习2——自定义类加载器和父类委托机制带来的问题
- 自定义类加载器
- java类加载器学习2――自定义类加载器和父类委托机制带来的问题
- java 自定义类加载器从磁盘或网络加载类
- 黑马程序员--05.类加载器--05【自定义类加载器】【自定义类加载器举例】
- 自定义类加载器加载指定目录下的类
- 自定义类加载器——加载任意指定目录的class文件
- JAVA加密解密:自定义类加载器应用
- 【转载】自定义类加载器例子