くまざわ書店でグイン21〜30購入。
リフレクションとクラスローダの組み合わせ試験:
import java.io.*;
import java.lang.reflect.*;
public class CLS extends ClassLoader {
public static void main(String[] args) throws Throwable {
CLS cl = new CLS();
Class c = cl.findClass("Sample");
Method main = c.getMethod("main" , new Class[] { String[].class });
main.invoke(null, new Object[] { args } );
}
public Class findClass(String name) {
try {
File file = new File("D:\\temp\\" + name + ".class");
FileInputStream in = new FileInputStream(file);
byte[] buff = new byte[(int)file.length()];
in.read(buff);
in.close();
return defineClass(name, buff, 0, buff.length);
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
}

コメントする