Java 类加载器(三)-自定义加载器源代码
来源:互联网 发布:淘宝onlyanna罗晓颖 编辑:程序博客网 时间:2024/06/06 20:42
下午刚写的自定义的加载器,附上源代码
HelloWord.java
package com.goodtion.sweetop;
public class HelloWord {
public String getInfo(){
return "This is a HelloWorld!";
}
}
FileClassLoader.java
package com.goodtion.sweetop;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileClassLoader extends ClassLoader {
public static final String drive="D://sweetop//搜索引擎//TomcatTest//bin//com//goodtion//sweetop//";
public static final String fileType=".class";
public Class findClass(String name){
byte[] data=loadClassData(name);
return defineClass(name,data,0,data.length);
}
private byte[] loadClassData(String name) {
FileInputStream fis=null;
byte[] data = null;
try {
fis = new FileInputStream(new File(drive+name+fileType));
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int ch=0;
while((ch=fis.read())!=-1){
baos.write(ch);
}
data=baos.toByteArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return data;
}
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException{
FileClassLoader loader = new FileClassLoader();
Class objClass=loader.loadClass("com.goodtion.sweetop.HelloWord",true);
Object obj=objClass.newInstance();
System.out.println(objClass.getName());
System.out.println(objClass.getClassLoader().getClass().getName());
System.out.println(((HelloWord)obj).getInfo());
}
}
- Java 类加载器(三)-自定义加载器源代码
- Java类加载器(自定义类加载器)
- JAVA自定义类加载器
- Java自定义类加载器
- 【java】自定义类加载器
- java自定义类加载器
- Java自定义类加载器
- java自定义类加载器
- 自定义java类加载器
- 三、Java类加载器
- Java类加载原理及自定义类加载器
- JAVA类加载机制以及如何自定义类加载器
- JAVA类加载机制以及如何自定义类加载器
- Java JVM:编译加载与自定义类加载器
- Java JVM:编译加载机制与自定义类加载器
- Java JVM:编译加载与自定义类加载器
- java三种类加载器加载类文件的地方
- 自定义类加载器
- GSM手机SMS编码解码
- 四级范文(二)The Ideal Assistant in My Mind
- 25招让男人精力旺旺
- PXA270-基于ARM9内核Processor外部NAND FLASH的控制实现
- 设计模式 c# 学习(-) to be continued..
- Java 类加载器(三)-自定义加载器源代码
- 可变参数函数
- 关于SQLDatasource控件的事件和参数
- Struts2与Struts1.x的深度比较
- 被问到的面试题答案。不用临时变量交换2个变量的值。
- java Native Method初涉
- asp.net中采用ajax进行多文件上传和删除
- java socket的简单使用实例
- 前苏联垂死时分27.5万亿美元消失的真相