网站: JavaEye 作者: hideto 发表时间: 2007-07-05 16:50 此文章来自于 http://www.iteye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://www.iteye.com/topic/98178
一、Java ClassLoader 1,什么是ClassLoader 2,一些重要的方法 B)defineClass C)findSystemClass D)resolveClass E)findLoadedClass 3,Java2中ClassLoader的变动 2)新方法:findClass 3)新方法:getSystemClassLoader 4)新方法:getParent 4,定制ClassLoader
代码
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class FileClassLoader extends ClassLoader { 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("D:\\project\\test\\" + name + ".class")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int ch = 0; while ((ch = fis.read()) != -1) { baos.write(ch); } data = baos.toByteArray(); } catch (IOException e) { e.printStackTrace(); } return data; } }
MyApp.java:
代码
public class MyApp { public static void main(String[] args) throws Exception { FileClassLoader loader = new FileClassLoader(); Class objClass = loader.findClass("MyApp"); Object obj = objClass.newInstance(); System.out.println(objClass.getName()); System.out.println(objClass.getClassLoader()); System.out.println(obj); } }
编译并运行MyApp类,结果为:
代码
MyApp FileClassLoader@757aef MyApp@9cab16
|
《 深入了解Java ClassLoader、Bytecode 、ASM、cglib 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>
推荐相关文章:
Eclipse 3.3携Europa正式发布了
我眼中的CXF之Bus
JavaEye推荐
上海乐福狗信息技术有限公司:诚聘技术经理和开发工程师
免费下载IBM社区版软件--它基于开放的标准,支持广泛的开发类型,让您的开发高效自主!
京沪穗蓉四地免费注册,SOA技术高手汇聚交锋.
上海:优秀公司德比:高薪诚聘 资深Java工程师
广州:优易公司:诚聘Java工程师,开发经理
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA