Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:如何根据一个class的文件名,动态的加载class [Re:KevinTian]
tool





发贴: 7
积分: 0
于 2005-01-11 23:11 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list

import java.io.*;
import java.util.Hashtable;

public class DirectClassLoader extends ClassLoader
{
protected final ClassLoader parent;
private final Hashtable definedClasses = new Hashtable();
public DirectClassLoader()
{
this(DirectClassLoader.class.getClassLoader());
}
public DirectClassLoader(ClassLoader _parent)
{
parent = _parent;
}
protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException
{
Class cls = findLoadedClass(name);
if (cls == null && parent != null)
{
try
{
cls = parent.loadClass(name);
}
catch (ClassNotFoundException e)
{

}
}
if (cls == null)
cls = findClass(name);
if (resolve)
resolveClass(cls);
return cls;
}
public Class loadClass(File file)throws ClassNotFoundException,IOException
{
return loadClass(new FileInputStream(file));
}
public Class loadClass(InputStream in)throws ClassNotFoundException,IOException
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
for( ; ; )
{
int l = in.read(buf);
if (l <= 0)
break;
out.write(buf,0,l);
}
in.close();
return loadClass(out.toByteArray());
}
public Class loadClass(byte[] b)throws ClassNotFoundException
{
return loadClass(b,0,b.length);
}
public Class loadClass(byte[] b,int off,int len) throws ClassNotFoundException
{
Class cls = defineClass(null,b,off,len);
definedClasses.put(cls.getName(),cls);
return loadClass(cls.getName());
}
protected Class findClass(String name) throws ClassNotFoundException
{
Class cls = (Class)definedClasses.get(name);
if (cls == null)
throw new ClassNotFoundException(name);
else
return cls;
}
}




话题树型展开
人气 标题 作者 字数 发贴时间
6431 如何根据一个class的文件名,动态的加载class KevinTian 214 2004-12-24 09:53
5341 Re:如何根据一个class的文件名,动态的加载class KevinTian 140 2004-12-24 09:54
5360 Re:如何根据一个class的文件名,动态的加载class Jove 60 2004-12-24 10:22
5239 Re:如何根据一个class的文件名,动态的加载class KevinTian 68 2004-12-24 11:28
5245 Re:如何根据一个class的文件名,动态的加载class beike 117 2004-12-28 19:28
5296 Re:如何根据一个class的文件名,动态的加载class sailor 118 2005-01-04 16:47
5350 Re:如何根据一个class的文件名,动态的加载class tool 2151 2005-01-11 23:10
5340 Re:如何根据一个class的文件名,动态的加载class tool 2156 2005-01-11 23:11
5314 Re:如何根据一个class的文件名,动态的加载class littledeer1974 17 2005-02-08 09:12

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923