在Java的程序發布中,很多人會選擇采用二進制的jar的格式進行發布,怎么樣讀取Jar里面的資源呢?
主要是采用ClassLoader的下面幾個方法來實現:
public URL getResource(String name);
public InputStream getResourceAsStream(String name)
public static InputStream getSystemResourceAsStream(String name)
public static URL getSystemResource(String name)
后兩個方法可以看出是靜態的方法,這幾個方法都可以從Jar中讀取圖片資源,但是對與動畫的gif文件,筆者在嘗試過程中發現,存在一些差異。
String gifName為Gif文件在Jar中的相對路徑。
(1)使用了兩個靜態方法
BufferedImage image=ImageIO.read(ClassLoader.getSystemResourceAsStream(gifName));
或者
Image image=Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource(gifName));
這兩種方式可以成功地讀取gif文件,但是對于gif動畫,顯示出來地是靜態的。
(2)使用其他兩個方法
Image image=Toolkit.getDefaultToolkit().getImage(this.getClass.getClassLoader().getResource(gifName));
再這種方式下動畫可以正常顯示了。
posted on 2007-05-30 21:19
jadmin 閱讀(54)
評論(0) 編輯 收藏