Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';找不到合适的图像路径_Java_Image - Fatal编程技术网

Java Can';找不到合适的图像路径

Java Can';找不到合适的图像路径,java,image,Java,Image,我只是在谷歌上搜索了一下这个网站,发现了很多东西,但不是我不懂原理就是我做错了 实际上,类和映像不在同一个目录中,但为了便于测试,我将映像放在与类相同的文件夹中 这是两条线: ImageIcon img = new ImageIcon("gimmick_facepalm.png"); System.out.println(img.getIconWidth() + " " + img.getIconHeight()); 输出总是-1-1,所以我怀疑Java没有读取图像 提示或解决方案将不胜感激

我只是在谷歌上搜索了一下这个网站,发现了很多东西,但不是我不懂原理就是我做错了

实际上,类和映像不在同一个目录中,但为了便于测试,我将映像放在与类相同的文件夹中

这是两条线:

ImageIcon img = new ImageIcon("gimmick_facepalm.png");

System.out.println(img.getIconWidth() + " " + img.getIconHeight());
输出总是-1-1,所以我怀疑Java没有读取图像

提示或解决方案将不胜感激:)


谢谢

如果不指定绝对路径(即windows下的C:/…),则当前目录将是执行程序的目录,而不是类文件夹(例如eclipse中的项目根目录,或调用“java”命令时的目录)

此外,您可以访问类路径包中的文件,如下所示:

File file = new File(ClassLoader.getSystemResource("name/of/package/"+fileName).toURI());
或直接使用ImageIcon:

new ImageIcon(ClassLoader.getSystemResource("name/of/package/"+fileName));
试一试


使用绝对路径,而不仅仅是图像名称。查看Java的和类。好的,但由于我们是一个使用git的团队,绝对路径会给其他每个成员带来问题,因为他们不使用相同的文件夹下载到project ToTanks以获得答案,但甚至不包括
ImageIcon imageFacepalm=new ImageIcon(ClassLoader.getSystemResource(filename));
其中filename是一个字符串,图像名称位于同一目录下。这是为什么?@N30请仔细查看:您需要将程序包以路径形式放在文件前面,即“com/myapp/gimmick_facepalm.png”谢谢大家,但当真正的问题是PEBKAC时,所有的帮助都不起作用。我记得将图像保存为.png,但实际上是.jpg.DOH!尽管如此,感谢大家的努力!(除此之外,我还必须将src/添加到我使用过的任何相对路径中)
URL url = ClassLoader.getSystemResource("gimmick_facepalm.png");
ImageIcon img = new ImageIcon(url);

System.out.println(img.getIconWidth() + " " + img.getIconHeight());