我已经写了一个程序,管理一个插件,这是提供的jar。
我使用URLClassLoader加载插件类,它的工作方式与预期的一样。我添加了一些资源(XML文件),这些资源存储在插件jar中。
如果我调用一个不使用资源的方法,一切都会正常工作,但是如果我调用一个使用资源的方法,我会得到一个FileNotFoundException。
发布于 2017-05-23 23:59:26
插件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实例用于加载资源。
有关加载资源的更多详细信息,请参阅:
希望这能解决你的问题。
https://stackoverflow.com/questions/43898551
复制相似问题