【发布时间】:2014-12-30 09:15:05
【问题描述】:
当我的测试类在默认包中时,下面的测试方法通过,当我将它移到包中时失败。
目录结构如下:
src/
main/
java/
some.package/
resources/
test/
FooTest.java // works here
some.package/
FooTest.java // does not work here
public class FooTest {
@Test
public void TestLoadImageFromFile() {
BufferedImage loadedImage = null;
try {
loadedImage = ImageIO.read(this.getClass().getResource("someImage.png"));
} catch(IOException e) {
e.printStackTrace();
}
assertNotNull(loadedImage);
}
...
【问题讨论】:
-
getClass().getResource() 使用类加载器来加载资源。这意味着资源必须在要加载的类路径中。
-
如果类路径中缺少它,为什么它会在一个位置工作而不是另一个?不应该根本就不行吗?
-
链接的问题完全不相关。它使用 ClassLoader#getResource 并解决不同的问题。
标签: java file-io getresource