【问题标题】:getResources() stops working when moved into package移入包时 getResources() 停止工作
【发布时间】: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


【解决方案1】:

按原样,您的路径是相对于调用类的。请改用/someImage.png

【讨论】:

  • 宾果游戏!我尝试填写 'src/.../someImage.png' 但没有尝试仅使用 '/'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多