如何在运行时加载jar文件的所有类?

时间:2011-09-27 15:17:11

标签: java jar runtime classloader urlclassloader

根据this question,可以从jar文件加载一个类:

ClassLoader loader = URLClassLoader.newInstance(
    new URL[] { jarFileURL },
    getClass().getClassLoader()
);
Class<?> clazz = Class.forName("mypackage.MyClass", true, loader);

如何加载jar文件中包含的所有类?

3 个答案:

答案 0 :(得分:3)

类加载器将在需要时立即加载.class文件。如果不需要,则不会加载。

为什么你认为你的方法会比类加载器已经改进了呢?

答案 1 :(得分:0)

您必须将其作为zip文件打开,浏览名称,假设所有以.class结尾的条目都是类文件并加载它们,忽略嵌套类等。

但是....为什么?

答案 2 :(得分:0)

如果您真的想要动态地阅读课程,请将其留给已经实施过课程的专业人士。实现自己的类加载器很难。相信我。我已经试过几次了。使用类似OSGi的东西,它可以为您提供动态类加载等等。