Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getResources()在移动到包中时停止工作_Java_File Io_Getresource - Fatal编程技术网

Java getResources()在移动到包中时停止工作

Java getResources()在移动到包中时停止工作,java,file-io,getresource,Java,File Io,Getresource,当我的测试类位于默认包中时,下面的测试方法通过,当我将其移动到包中时,测试方法失败 目录结构如下所示: src/ main/ java/ some.package/ resources/ test/ FooTest.java // works here some.package/ FooTest.java // does not work here 实际上,您的路径是相对于调用类的。改为使用/someImage.png。ge

当我的测试类位于默认包中时,下面的测试方法通过,当我将其移动到包中时,测试方法失败

目录结构如下所示:

src/
  main/
    java/
      some.package/
    resources/
  test/
    FooTest.java // works here
    some.package/
        FooTest.java // does not work here


实际上,您的路径是相对于调用类的。改为使用
/someImage.png

getClass()。getResource()使用类加载器加载资源。这意味着资源必须位于要加载的类路径中。如果类路径中缺少资源,为什么它可以在一个位置工作,而不能在另一个位置工作?这难道不应该吗?相关的问题完全不相关。它使用ClassLoader#getResource并解决了一个不同的问题。宾果!我尝试填写'src/../someImage.png',但没有尝试只使用'/'
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);
}
...