如何在没有加载类的情况下从jar加载方法?

时间:2014-02-13 09:25:32

标签: java reflection urlclassloader

我正在尝试读取一个Jar文件,其中包含很少的类并且在其中定义了方法。我希望从所有类中获取所有声明的方法,而无需加载单个类。有可能吗?

以下是我如何加载jar文件和方法(截至目前使用类名)。

File urlclasspath = new File(newJarPath);
        URL urlarray[] = new URL[1];
        urlarray[0] = urlclasspath.toURI().toURL();
        ClassLoader loader = new ClassLoader(urlarray);
        Class<?> myclass = loader
                .loadClass($classname$);

        Object obj = myclass.newInstance();
        Method add = myclass.getMethod("add", new Class[] { Integer.TYPE,
                Integer.TYPE });
        add.invoke(obj,
                new Object[] { new Integer(var1), new Integer(var2) });

        if (obj == null) {
            System.out
                    .println("FAIL: Could not create an instance of the loaded class");
            }

提前致谢

1 个答案:

答案 0 :(得分:1)

Class是包含in的所有方法的容器。因此,为了到达方法,您必须首先加载该类。