我编写了一个程序来管理一个以jar形式提供的插件。
我使用URLClassLoader
加载插件类,它按预期工作。
我添加了一些存储在插件jar中的资源(XML文件)。
如果我调用一个不使用资源的方法,一切正常,但如果我调用一个使用资源的方法,我会得到一个FileNotFoundException
。
答案 0 :(得分:0)
您的插件jar文件中打包的资源由URLClassLoader
加载。因此,要访问这些资源,您应该使用该特定URLClassLoader
实例加载它们。
例如:
URL[] urls = ...//urls to jar classes and resources
URLClassLoader uClassLoader = new URLClassLoader(urls);
Class loadedClass = uClassLoader.loadClass("CLASS_NAME");
要获取jar中的资源,
loadedClass.getClassLoader().getResource()
注意,此处URLClassLoader
实例用于加载资源。
有关加载资源的更多详细信息:
希望这能解决您的问题。