从主应用程序访问插件jar中的资源文件

时间:2016-03-06 02:38:06

标签: java jar embedded-resource

我正在开发一个主应用程序,其功能可以通过包含插件的jar文件进行扩展。当我的应用程序运行时,它只是检查文件夹中的插件,并加载它在那里找到的类并将它们注册到我的应用程序中。

我想在我的应用程序中开发一个帮助/消息子系统,它使用外部资源文件(如果可能的话,HTML文件)来获取与应用程序各个部分相关的帮助内容,并获取详细的信息/警告/要显示给用户的错误消息。

对于与主应用程序有关的所有内容,我可以轻松确定资源文件的相对路径,因为我将这些资源文件保存在与我的应用程序类文件相同的jar中。

对于外部插件,理想情况下,与该插件有关的资源文件应该存在于该插件的jar中。但是,我没有找到一种一致的方法来确定动态加载的jar中这些文件的路径。

对于我如何能够始终如一地为内部资源和外部提供的资源使用主应用程序提供的相同帮助/消息传递框架表示感谢。

1 个答案:

答案 0 :(得分:0)

如果您尝试从其他插件或主应用程序代码加载文件,则需要Spring中的pluginManager实例:

InputStream in = pluginManager.getDynamicResourceAsStream(filename)

参考:https://developer.atlassian.com/confdev/development-resources/confluence-developer-faq/what-is-the-best-way-to-load-a-class-or-resource-from-a-plugin

相关问题