TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
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);
}
}
[/code]
源码下载:http://file.javaxxz.com/2014/11/1/000105937.zip |
|