?????????loader??
/**
*TestRun.java
*Copyright 2005-2-11
*/
import java.lang.reflect.*;
public class TestRun{
public static void main(String[] args) throws Exception{
String progClass=args[0];
String progArgs[]=new String[args.length-1];
System.arraycopy(args??1??progArgs??0??progArgs.length);
CompilingClassLoader ccl=new CompilingClassLoader();
Class clas=ccl.loadClass(progClass);
//???????class??type
Class[] mainArgType={(new String[0]).getClass()};
Method main=clas.getMethod("main"??mainArgType);
Object argsArray[]={progArgs};
main.invoke(null??argsArray);
}
}
?????????????????????д?????????????????????????
????CompilingClassLoader.class??TestRun.class
?????????д????????????????????ClassLoader
/**
*Hello.java
*/
public class Hello{
public static void main(String[] args){
if(args.length!=1){
System.err.println("Error??exit!");
System.exit(1);
}
String name=args[0];
System.out.println("Hello??"+name);
}
}
?????????????java TestRun Hello ????
????....
????....
????....
????Hello??????