哪里软件包的相对路径开始?

问题描述 投票:0回答:1

使用getResourceAsStream加载图像的一个长期的,艰巨的任务后,我决定把我所有的源代码组织成包我src文件夹内。

从那时起,我原来的检索文件的方法不再起作用。

这是我提出的原班:

package main;

import java.awt.image.BufferedImage;

import java.io.IOException;

import javax.imageio.ImageIO;

public class ResourceLoader {

    public static BufferedImage getImage(String uri) throws IOException {
        BufferedImage image = null; 

        image = ImageIO.read(ResourceLoader.class.getResource(uri));

        return image;

    }

}

正如前面提到的,这个工作进入路径时,100%的罚款:

"imgs/anims/testimage.png"

曾与这个完美的罚款。 IMGS是源文件夹内资源的文件夹。

java relative-path
1个回答
0
投票

我们发现您的问题:

你用来加载所有的图片比较,以ResourceLoader这是位于根包(气馁!和好,你重构)。

但是,现在(您搬离ResourceLoader //main和)所有的URI的点入“佳境”,因为没有imgs/...相对于/main


解:

  1. 重构/imgs根据资源加载到/main/imgs 移动imgsmain/imgs。 (如果main是(当然!)不存在,请创建它,这个解决方案不需要码/ URI调整。)
  2. 或者使用绝对地址, 请参阅(全部)的图像作为/imgs/...(以斜杠字符(/))。
  3. 备选地重构的ResourceLoader回到/。 也没有进一步的代码/ URI的调整需要。
© www.soinside.com 2019 - 2024. All rights reserved.