62,628
社区成员
发帖
与我相关
我的任务
分享
class MyCLassLoader extends ClassLoader{
private int key;
public MyCLassLoader(int key){
this.key = key;
}
protected Class<?> findClass(String name){
byte[] classBytes = null;
try {
classBytes = loadClassBytes(name);
} catch (Exception e) {
e.printStackTrace();
}
Class<?> c = defineClass(name, classBytes, 0, classBytes.length);
if(c == null)
try {
throw new ClassNotFoundException(name);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return c;
}
private byte[] loadClassBytes(String name) throws Exception {
// TODO Auto-generated method stub
String cname = name.replace('.', '/') + ".MY";
FileInputStream in = null;
in = new FileInputStream(cname);
ByteArrayOutputStream butter = new ByteArrayOutputStream();
int ch;
while ( (ch = in.read()) != -1 ) {
ch = (byte)(ch-key);
butter.write(ch);
}
return butter.toByteArray();
}
}
public class ClassLoaderTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyCLassLoader mc = new MyCLassLoader(3);
Class<?> c = mc.findClass("src.ClassLoader.ClassTestEx");
}
}