我自己写了一个类加载器,可是总会在return defineClass(byts, 0, byts.length);这条语句出错,大神求解决啊!!!!!!!!
public class MyClassLoader2 extends ClassLoader {
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
try {
FileInputStream fis = new FileInputStream(
"D://CLassLoaderAttrachment.java");
ByteArrayOutputStream byos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len = -1;
while ((len = fis.read(buf)) != -1) {
byos.write(buf, 0, len);
}
byte[] byts = byos.toByteArray();
// 将字节转换成字节码返回
return defineClass(byts, 0, byts.length);
} catch (Exception e) {
}
return super.findClass(name);
}
}
public class MyClassLoaderTest2 {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException { new MyClassLoader2().findClass("CLassLoaderAttrachment"); }
}
public class CLassLoaderAttrachment { public String toString() { System.out.println("itcast"); return "itcast"; }
}
|
|