本帖最后由 世界公民 于 2014-4-25 21:33 编辑
下载是我自定义的一个类加载器,把Myclass.class文件放到其他目录下,但是这样就只能用我写的类加载器来加载这个类了,当把Myclass.class再放回正常的目录下时,父类加载器也没有办法加载了,怎么办???
- //含有main方法的类
- public class ClassLoaderTest {
- public static void main(String[] args) throws Exception {
- Class clazz = new MyClassLoader().loadClass(" ");
- Date d = (Date)clazz.newInstance();
- System.out.println(d);
- }
- }
- //我的类加载器
- public class MyClassLoader extends ClassLoader{
- @Override
- public Class findClass(String name){
- FileInputStream fi;
- String classurl = "D:\\Users\\Administrator\\workspace2\\day2\\day2Class\\Myclass.class";
- ByteArrayOutputStream bo = null;
- System.out.println("我的类加载器");
- try {
- fi = new FileInputStream(classurl);
- bo = new ByteArrayOutputStream();
- int i = -1;
- while(true){
- i = fi.read();
- if(i==-1)break;
- bo.write(i);
- }
- fi.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- byte[] bytes = bo.toByteArray();
- return defineClass(bytes,0,bytes.length);
- }
- }
- //我写的测试类
- public class Myclass extends Date{
- @Override
- public String toString(){
- return "我是Myclass类中的toString方法。";
- }
- }
复制代码 |