我正在尝试这个简单的测试:
@Test
public void testResourceExist() {
URL file = getClass().getResource("sample.htm");
Assert.assertNotNull(file);
}
我的目录结构是:
src
- main
- java
- resources
- test
- java
ResourcesTest.java
- resources
sample.htm
我正在使用IntelliJ Idea和maven甚至Ide自动填充sample.htm文件。 如果我检查test-classes文件夹,我可以在那里看到sample.htm文件。
答案 0 :(得分:1)
我只需要在资源名称之前添加一个斜杠。
" /sample.htm"而不是" sample.htm"及其工作
答案 1 :(得分:1)
实际上,您不应将其作为文件资源读取,而应将其作为类路径资源读取。 resources
中的所有文件都打包为jar的一部分,而不是直接放在文件系统上,并且所有类路径都是绝对的,所以开始时不需要斜杠。相反,您在此处遇到的错误是您尝试使用getResource()
而不是类路径资源,使用getClasspathResourceAsStream()
或类似内容来读取文件资源。如果您使用后者,那么您将不需要斜杠。