1

在哪种情况下,可以使用 aURLClassLoader从指定路径中的特定 jar 加载类?
例如

URL url = new URL("file:///path/to/customClasses.jar");
URLClassLoader pluginLoader = new URLClassLoader(new URL[] { url });
Class<?> cl = pluginLoader.loadClass("apackage.MyCustomClass");

如果我想使用 customClasses.jar 中的类,我一直认为将这个 jar 放在可从 CLASSPATH 访问的路径中就足够了。
然后在我的代码中使用apackage.MyCustomClass.
我想我在这里有一些被误解或遗漏的东西,所以有人可以解释一下并举例说明上述加载类的片段何时有用吗?
谢谢!

4

1 回答 1

2

我想说,根据您正在执行的编程类型,使用URLClassLoader应该是非常罕见的。

通常,您将使用类加载器在运行时加载您无法提前预料到的类。

一个很好的例子是,如果您构建了一个可以使用插件扩展的工具,并且插件是在运行时加载的。例如,Eclipse。

如果您在编译时有可用的 jar 并且在命令行上,请将所需的 jar 文件添加到您的编译语句中。例如,

javac -cp /path/to/lib/customClasses.jar MyClassThatReferencesCustomClasses

如果您使用的是 Eclipse,请将 jar 添加到您的项目中,然后右键单击它并选择添加到构建路径。

问候,

将要

于 2010-12-29T17:44:58.457 回答