2011-06-04 47 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());