嗨一直試圖從我的SRC文件夾中訪問圖像文件,以便我可以直接從jar中運行它。不幸的是它沒有加載它們,我可以請你幫忙。它是一個空指針異常,無法讀取輸入文件。這裏是該文件夾的位置以及我在代碼中的位置。 CODE:「/sprites/mapsheet2.png」目錄:C:\ Users \ Lucas \ workspace \ Vigilante \ src \ sprites \ mapsheet2.png如果有任何額外的信息需要告訴我,併發送它。從.jar文件如何訪問我的SRC文件夾中的文件?
回答
資源可以裝入:getClass().getResource()
它返回的網址與正確的路徑
Image icon = ImageIO.read(getClass().getResource("image´s path"));
線程「main」中的異常java.lang.IllegalArgumentException:input == null! \t at javax.imageio.ImageIO.read(Unknown Source) \t at Graphics.spritesheet。
不要將輸出置於註釋中。這是不可讀的。相反[編輯](http://stackoverflow.com/posts/17774984/edit)的問題包括輸出,並使用代碼格式。爲此,請選擇樣本並單擊郵件發佈/編輯表單上方的「{}」按鈕。 –
您可以將.jar歸檔文件打包所有必需的資源。並訪問它使用
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("res\file.img")
可以使用imageIO轉換爲圖像。
protected spritesheet s = new spritesheet(「/ sprites/Blocks.png」); – user2551633
您可以嘗試將圖像作爲ByteArrayInputStream加載到BufferedImage中。像這樣: BufferedImage img = null; try { BufferedInputStream sc = new BufferedInputStream(ImageLoad.class.getResourceAsStream(file)); ArrayList in = new ArrayList(); byte b = null; ((b = sc.read)!= null)in.add(b); byte [] bytes = new byte [in.size()];
for(int i = 0; i < in.size(); i ++)bytes [i] = in.get(i); img = ImageIO.read(new ByteArrayInputStream(bytes)); } catch(Exception e){}
然後只是在需要的時候使用圖片!唯一的事情是你必須將sprites/mapsheet2.png放在你正在運行它的類的同一個文件夾中。假設你的類是ImageLoad.java,ImageLoad.java必須和sprites/mapsheet2.png在同一個包中。 EC:
ImageLoad.java位於package image.load中,位於image.load中,是資源精靈(A Dir)和sprites/mapsheet2.png,並且對於在該區域中加載所需的任何其他映像。如果你想加載圖像並在另一個類中使用它,你可以創建一個包含上面代碼的方法,並返回一個bufferedImage。 EC:
public class ImageLoad {
public static BufferedImage load(String file) throws Exception{
BufferedInputStream sc = new BufferedInputStream(ImageLoad.class.getResourceAsStream(file));
ArrayList<Byte> in = new ArrayList<Byte>();
byte b = null;
while((b = sc.read) != null)in.add(b);
byte[]
bytes = new byte[in.size()];
for(int i = 0; i < in.size(); i ++)bytes[i] = in.get(i);
return ImageIO.read(new ByteArrayInputStream(bytes));
}
}
我不認爲這個方法是錯誤的,在我嘗試從SRC讀取它之前,它讀得很完美。 – user2551633
堅持其固定的方式感謝大家的快速和可靠的幫助。 rbilliant社區。 – user2551633
- 1. 如何訪問src文件夾中的包中的.gif文件?
- 2. 訪問位於mac上的src文件夾中的文件
- 3. 如何訪問src/main/resources /文件夾中的資源文件在Spring Boot
- 4. Yii2如何訪問「root」文件夾中的文件夾?
- 5. 如何訪問jar文件內的文件夾內的文件?
- 6. GWT:我如何讀取包含在我的src文件夾中的Excel文件?
- 7. 訪問位於src文件夾外的jar文件中的資源
- 8. 如何訪問Moodle中的moodledata文件夾內的文件
- 9. 如何限制對codeigniter文件夾中的文件的訪問
- 10. 如何訪問ZipEntry中的文件夾內的文件
- 11. 如何訪問一個文件夾或文件的父文件夾的PHP
- 12. 整理的Android src文件夾的子文件夾中(Eclipse中)
- 13. 如何訪問Skydrive API中嵌套文件夾的文件?
- 14. 如何訪問私有/ var文件夾中的文件?
- 15. 如何訪問java類中WEB-INF文件夾下的文件
- 16. 如何訪問MATLAB中的'程序文件'文件夾
- 17. 如何訪問JAR文件中的文件夾
- 18. 如何使用數組訪問vba文件夾中的文件?
- 19. 如何在單獨的文件夾中訪問PHP文件
- 20. Phonegap - 如何訪問www文件夾中的文件?
- 21. Yii2 - 如何訪問根文件夾中的html文件?
- 22. 如何防止用戶訪問文件夾中的文件?
- 23. 如何訪問文檔文件夾
- 24. 如何限制訪問的文件夾
- 25. 如何直接訪問文件夾和訪問Excel文件
- 26. 訪問Webcontent文件夾外的文件
- 27. 拒絕訪問文件夾,但允許訪問該文件夾內的文件
- 28. 如何從我的RubyMotion代碼中的資源文件夾訪問文件?
- 29. CF - 如何訪問我的資源文件夾中的.gif
- 30. 如何從同一插件中的src文件訪問我的Grails插件中的文件?
*任何額外的信息* - 代碼請。 –
*如果需要任何額外的信息告訴我,併發送它*把相關的代碼,而不是隻是解釋問題。 –
答案都是正確的,但我相信你可能會遇到不同的問題。構建jar文件時,構建系統是否需要包含這些特定資源?通常,構建系統配置將有選項來指定要在jar中包含哪些類型的資源。 –