如何在.jar文件中捆绑图像?

时间:2013-05-16 09:51:31

标签: java image

好的,我在发布.jar文件方面遇到了一些问题。当我从NetBeans运行该程序时,它可以工作,但如果我尝试从dist文件夹运行它,它不起作用(没有任何图像被加载)。

这是我的程序的层次结构:

  • src / img / 随机图片
  • src / myapp / 源文件

我使用此功能加载图像:

public BufferedImage getImg(String path) throws IOException {
    if (this.getClass().getResource(path) != null) {
        return ImageIO.read(this.getClass().getResource(path));
    } else {
        return null;
    }
}

之后:

BufferedImage image = getImg("../img/static_bg.png");
if (image != null) {
    g.drawImage(image, 309, 884, this);
}

我构建项目后,图像在jar文件中,但它们没有被加载。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

要从Web应用程序中加载war文件中的文件,您需要从“ServletContext”加载它。每个servlet都有一个getServletContext()方法可用于此目的。它也可以从request.getSession().getServletContext()

获得
URL url = servletContext.getResource(name);
if (url == null) return null;
URLConnection resourceConn = url.openConnection();
return ImageIO.read(resourceConn);