我知道此问题曾被问过1000次。我确实尝试了所有的解决方案(How to read file from relative path in Java project? java.io.File cannot find the path specified也没有用),但是它们似乎都没有用。
我试图通过提供这样的相对路径来读取图像文件:
BufferedImage image;
image = fm.readMap("..\\..\\resources\\5x5.png");
读:
public BufferedImage readMap(String path)
{
BufferedImage img = null;
try{
img = ImageIO.read(new File(path));
}
catch (IOException e){
System.out.println("Image not found.");
e.printStackTrace
}
return img;
}
代码的位置:
父母 - > src - > externalsourcemanagement - > TestMapAnalysis.java
图片的位置:parent - >资源 - > 5x5.png
提前致谢!
答案 0 :(得分:3)
相对路径与Source(.java)文件无关,它相对于类路径。如果bin文件夹下的类与src位于同一目录中,则图像的相对路径为
image = fm.readMap("resources\\5x5.png");
答案 1 :(得分:1)
您可以使用:
getClass().getResourceAsStream("/" + fileName);
在资源文件夹中获取InputStream
文件。
答案 2 :(得分:1)
尝试更改图像的位置,如:
src\\resources\\5x5.png
示例代码:
String pathToImageSortBy = "nameOfProject/resources/5x5.png";
ImageIcon SortByIcon = new ImageIcon(getClass().getClassLoader().getResource(pathToImageSortBy));