1

根据这个问题,可以从 jar 文件中加载一个类:

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

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

4

3 回答 3

2

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

为什么你认为你的方法会比类加载器已经做的更好?

于 2011-09-27T15:26:11.540 回答
0

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

但为什么?

于 2011-09-27T15:19:18.967 回答
-1

如果您真的想动态阅读类,请将其留给已经实现该功能的专业人士。实现自己的类加载器很困难。相信我。我已经尝试了几次。改用 OSGi 之类的东西,它为您提供动态类加载等等。

于 2013-11-11T23:03:55.857 回答