【发布时间】:2011-06-07 02:48:09
【问题描述】:
我有一个程序需要能够在运行时动态加载 JAR - 环顾四周后,我相信它使用 URLClassLoader,但我不确定如何让它工作。 JAR“openup.jar”与程序位于同一目录中。
理想情况下我希望能够加载这个 JAR,而不必在其中指定每个单独的类。
【问题讨论】:
-
“加载这个 JAR 而不必知道里面有什么”到底是什么意思?那么,您究竟想从中加载什么?
-
为什么要在不知道里面有什么的情况下加载一个罐子?您想将其作为 zip 文件处理还是对加载 java 类感兴趣?
-
抱歉,措辞不佳-我的意思是,是否可以加载 JAR 而无需指定要使用的各个类。我正在使用的每个 JAR 中有 100 多个类(我需要使用所有这些类)——我的意思是是否可以在不为每个 JAR 中的每个类使用 getClass() 的情况下加载它们?跨度>
-
您在哪里 使用这些类?在 Java 中,类不会通过未知的魔法“加载”。它们被加载是因为它们在某处被引用。什么确切地 引用了您希望从该 jar 中加载的类? “干净”的解决方案是创建一个能够加载相关 jar 的类加载器,并让 依赖于该 jar 的类从已将 jar 类加载器设置为其父级的类加载器加载。