java urlclassloader用法。它只在极少数情况下才需要吗?

时间:2010-12-29 17:37:37

标签: java classpath classloader urlclassloader

在哪种情况下,可以使用URLClassLoader从指定路径中的特定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 我想我在这里有一些被误解或遗漏的东西,所以有人可以解释并举例说明上述加载类的片段何时有用? 谢谢!

1 个答案:

答案 0 :(得分:2)

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

通常,您将使用类加载器在运行时加载类,而这些类是您无法提前预测的。

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

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

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

如果您正在使用Eclipse,请将jar添加到项目中,然后右键单击它并选择add to build path。

此致

威尔