【发布时间】:2009-04-14 22:02:27
【问题描述】:
我知道我们可以这样做:
Class.class.getResourceAsStream("/com/youcompany/yourapp/module/someresource.conf")
读取打包在我们的 jar 文件中的文件。
我用谷歌搜索了很多,我肯定没有使用正确的术语;我想做的是列出可用资源,如下所示:
Class.class.listResources("/com/yourcompany/yourapp")
这应该返回包内的资源列表com.yourcompany.yourapp.*
这可能吗?如果不能像我展示的那样轻松完成,有什么想法吗?
注意:我知道可以知道你的 jar 在哪里,然后打开它并检查它的内容以实现它。但是,在我现在工作的环境中,我做不到。
【问题讨论】:
-
是否可以选择 ServiceLoader? stackoverflow.com/questions/251336 也就是说,您不是在运行时在类路径中列出“目录”,而是在编译时显式提供资源列表,并将其存储在类路径中一个众所周知的位置。