【发布时间】:2017-12-10 15:43:27
【问题描述】:
我有一个库项目,其中包含一些我想加载和使用的资源。 我将在另一个项目中使用这个库,所以我必须将资源打包到 .jar 中。这是如何实现的:
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
在尝试检索文件时出现问题,我这样做了:
String resourceName = "myTemplateResource.json";
URL url = MyClass.class.getClassLoader().getResource(resourceName);
url 被分配了一个null 值。它发生在库的测试和依赖项目中。有什么遗漏的提示吗?
也使用
进行了测试MyClass.class.getResource("/myTemplateResourceName.json");
和
MyClass.class.getClassLoader().getResource("src/main/resources/myTemplateResource.json");
结果相同。
【问题讨论】:
-
也测试了同样的结果
-
It happens in the library's tests- 你的意思是项目本身找不到它自己的资源?你确定你把那个文件放在src/main/resources中并使用那个确切的名称吗?它对我有用(第二种方式),我不知道为什么它不会(在 pom 中有resources元素,没有它,这里没有必要) -
不要猜测,而是检查您的 .jar 文件。您可以在任何 IDE 的“文件”视图中执行此操作,也可以使用 jar command line tool,或者可以将 .jar 文件复制到新文件,将其扩展名更改为 .zip,然后使用任何 zip 工具(从 . jar 文件实际上只是一个带有特殊清单条目的 zip 文件)。