くまざわ書店でグイン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; } }
コメントする