这样写(假设方法的参数是String[],如main(String[] args)):
Class yourClass = Class.forName("YourClass");//假设你要动态加载的类为YourClassClass[] parameterTypes = new Class[1];//这里你要调用的方法只有一个参数parameterTypes[0] = String.class;//这个参数的类型是String型的Method method = yourClass.getMethod("main", parameterTypes);//这里假设你的类为YourClass,而要调用的方法是mainClass[] args = new Class[2];//假设你要传入两个参数
args[0] = "OK";
args[1] = "NO";method.invoke(yourClass.newInstance(), args);//调用方法

解决方案 »

  1.   

    参数类型用String.class好象不行,报  java.lang.NoSuchMethodException异常
    而且args是一个参数,用invoke时,是否是Object[]的一个值?
      

  2.   

    随风好久不见了,你们还好吗? 那件事怎么样了?String[] a ;
    a.getClass()不知道可以不?
      

  3.   

    我们都还可以,那件事情只能说有希望,但没变化吧刚才试了试了
    使用String[].class和getClass()好像是可以的,而且方法调用应该是
    method.invoke(null, new Object[]{args});  
    因为args参数只是一个参数,所以只是参数数组的一项,main方法是static方法,不需要指定实例。但是虽然被调起来,但是还有问题,不过应该不是这方面的问题了,谢谢两位的帮忙
      

  4.   

    是我搞错了,正确的应该是:
    这样写(假设方法的参数是String[],如main(String[] args)):
    Class yourClass = Class.forName("YourClass");//假设你要动态加载的类为YourClassClass[] parameterTypes = new Class[1];//这里你要调用的方法只有一个参数parameterTypes[0] = String[].class;//这个参数的类型是String型的/////应该是String[]Method method = yourClass.getMethod("main", parameterTypes);//这里假设你的类为YourClass,而要调用的方法是mainObject[] args = new Object[1];//假设你要传入两个参数////应该是一个
    String[] argments = new String[2];//假设你要传入两个参数
    argments[0] = "OK";
    argments[1] = "NO";
    args[0] = argments;method.invoke(yourClass.newInstance(), args);//调用方法你再试试吧,应该可以了