2011-06-04 53 views
2

我正在閱讀100 MB圖片到我的應用程序。它可以在Eclipse內正常工作,但不會在將項目導出到JAR時使用。然後,我得到「無法讀取輸入文件!」如何閱讀大bufferedimage

由於我需要編輯它,我用BufferedImage

private String str = "images/1.png"; 
BufferedImage imageMap; 
//in constructor 
imageMap = ImageIO.read(new File(str)); 

我已經試過這一點,但該項目的圖像不會在Eclipse中加載:

imageMap = ImageIO.read(this.getClass().getClassLoader().getResource(str)); 
+0

你試過會,據我所知,嘗試讀出來的圖像的JAR文件的兩個版本。圖像相對於JAR在哪裏?外?內? – 2011-06-04 18:27:45

+0

你可以發佈堆棧跟蹤嗎? – Thor 2011-06-04 18:38:53

+0

嘗試使用image/1.png外部加載,並且它的工作原理與stacktrace一樣,當應用程序僅在顯示圖像時才啓動nullpointerExeption。由於它從外部工作,我仍然需要jar文件內的圖像? – nkvnkv 2011-06-04 18:56:07

回答

2

檢查的圖像從文件系統加載你的工作目錄。然後你會看到你的相對路徑"images/1.png"是否有效。或者你直接檢查你的PNG的路徑

System.out.println(new File(".")); 
File f = new File("images/1.png"); 
System.out.println(f.getAbsolutePath());