我想从classpath加载一个资源文件。此文件可能位于jar文件中,也可能只是一个单独的文件。我怎么知道?感谢
答案 0 :(得分:0)
假设MyClass
是包含资源文件的ClassLoader
或子ClassLoader
中的一个类,这应该可以解决这个问题。
MyClass.class.getResourceAsStream("/path/to/my/resource")
查找具有给定名称的资源。搜索资源的规则 与给定类相关联的是由定义类实现的 班级装载机。此方法委托给此对象的类 装载机。如果这个对象是由bootstrap类加载器加载的,那么 方法委托给 的 ClassLoader.getSystemResourceAsStream(java.lang.String中)强>
更多详情here
上述提案将您的资源设为InputStream
,如果您希望将其作为URL
使用MyClass.class. getResource("/path/to/my/resource")
来代替