2013-05-16 78 views
3

好的,我在分發我的.jar文件時遇到了一些問題。當我從NetBeans運行該程序時,它可以正常工作,但是如果我嘗試從dist文件夾運行它,它不起作用(所有圖像都無法加載)。如何將圖像捆綁到.jar文件中?

這裏是我的程序的層次結構:

  • 的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文件,但他們沒有得到加載。任何想法爲什麼?

+0

哦,對不起,修好了。 – Squeazer

+4

'getImg(「/ img/static_bg.png」);' –

+0

哦,上帝,它太簡單了。謝謝!!! – Squeazer

回答

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); 
相關問題