好的,我在发布.jar文件方面遇到了一些问题。当我从NetBeans运行该程序时,它可以工作,但如果我尝试从dist文件夹运行它,它不起作用(没有任何图像被加载)。
这是我的程序的层次结构:
我使用此功能加载图像:
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文件中,但它们没有被加载。有什么想法吗?
答案 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);