java动态编译,反射加载类

话不多说,上代码

try {
			URL[]urls = new URL[]{new URL("file:/"+"c:/user/")};
			URLClassLoader loader = new URLClassLoader(urls);
			Class c = loader.loadClass("HelloWorld");// 动态读取这个类
			//调用加载类的main 方法
			Method m = c.getMethod("main", String[].class);
			m.invoke(null, (Object)new String[]{"aa","bb"});
			//由于可变参数是jdk5.0之后才有的 上面代码会编译成:m.invoke(null,"aa","bb"),就发生了参数个数不匹配的问题。
			//因为,必须要加上(Object)转型。避免这个问题
			//public static void mmm(String[] a,String[]b);
			//public static void main(String[] args);
		} catch (Exception e) {
			e.printStackTrace();
		}
	


你可能感兴趣的:(思路)