在哪种情况下,可以使用 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
。
我想我在这里有一些误解或遗漏的地方,所以有人可以解释一下并举一个例子,说明上面这种方式加载类的片段何时有用?
谢谢!
最佳答案
我想说,根据您正在进行的编程类型,URLClassLoader
的使用应该很少发生。
通常,您将使用类加载器在运行时加载您无法提前预料到的类。
一个很好的例子是,如果您构建一个可以使用插件扩展的工具,并且插件在运行时加载。例如,Eclipse。
如果您在编译时有可用的 jar 并且位于命令行上,请将所需的 jar 文件添加到编译语句中。例如,
javac -cp /path/to/lib/customClasses.jar MyClassThatReferencesCustomClasses
如果您使用的是 Eclipse,请将 jar 添加到您的项目中,然后右键单击它并选择“添加到构建路径”。
问候,
会
关于java urlclassloader 的用法。只有在极少数情况下才需要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4556328/