import java.net.*; import java.lang.reflect.*; public class MyURL{ static public void main( String args[] ) throws Exception { URL myurl[] = {//类文件地址,为了验证,请放入web服务器如:http://127.0.0.1:8080/cwbwebhome/ new URL("file:///C:/CH3/ClassLoader/web/"), new URL ("http://127.0.0.1:8080/cwbwebhome/") }; URLClassLoader x = new URLClassLoader (myurl); Class c = x.loadClass ("TestURL");//装载类文件TestURL.class Class getArg1[] = { (new String[1]).getClass() }; //main()主方法的参数类型 Method m = c.getMethod( "main", getArg1 ); //获取主方法 String[] my1={"arg1 passed","arg2 passed"}; //调用主方法的参数 Object myarg1[] = {my1}; m.invoke( null, myarg1 );//调用TestURL类的静态主方法 Object ob = c.newInstance(); //一个TestURL对象 Class arg2[] =null; Method m2 = c.getMethod("tt", arg2 ); //调用TestURL类的无参数的方法tt() m2.invoke(ob); Class arg3[] = {(new String()).getClass(), int.class}; Method m3 = c.getMethod("tt", arg3 ); Object myarg2[] = {"Arg1",new Integer(100)}; m3.invoke( ob,myarg2);//调用TestURL类的方法tt(String s, int i) } } 运行结果(jdk1.5下通过): C:\java>java MyURL From Main arg1 passed arg2 passed From tt without args Fron tt with args Arg1 100 C:\java> 附TestURL.java import java.io.*; public class TestURL{ static public void main( String args[] ) throws Exception { System.out.println("From Main"); System.out.println(args[0]); System.out.println(args[1]); } public void tt( ) throws Exception{ System.out.println("From tt without args"); byte b[]="How are you!".getBytes("UTF8"); FileOutputStream f=new FileOutputStream("ssss.txt"); f.write(b); } public void tt(String s, int i){ System.out.println("Fron tt with args"); System.out.println(s); System.out.println(i); } }</td> </tr> <tr>
↑返回目录
前一篇: 获取类的方法列表
后一篇: 使用RSA算法进行加密和解密