2016-11-17 79 views
-1

因此,我编写了一个小应用程序,该应用程序使用表示文件路径的字符串,以便我可以创建文件,然后创建缓冲图像。我省略不相关的代码,这个例子:无法在不同的计算机上读取具有相同URL和相同文件结构的文件

public class MorphImage { 
private final String URL0 = "pic1.jpg"; 

//.... 

URL url = getClass().getResource(URL0); 
File file = new File(url.getPath()); 
BufferedImage img = ImageIO.read(file); 

我的文件结构如下:

projectName 
      src 
       package1 
         MorphImage.java 
         pic1.jpg 

在我的笔记本电脑运行Windows 10,这工作得很好,但是使用上完全相同的项目我Windows 8电脑,我在最后一行获得IIOException: Can't read file!。两台计算机使用相同的Eclipse版本和相同的JDK版本。我不知道这里要做什么。我在我的Windows 8机器上尝试了许多不同的文件路径,但只是抛出NP,所以路径是正确的。

编辑:以下解决方案:

URL defaultImage = MorphImage.class.getResource(URL0); 
    File file = new File(defaultImage.toURI()); 
    BufferedImage img = ImageIO.read(file); 

回答

0

试图让作为资源流,与文件路径如下

的getClass()getClassLoader()的getResourceAsStream( “包1/pic1.jpg”。 );

+0

这实际上工作,谢谢,将编辑我的文章的解决方案。 – korv

相关问题