今天遇到一个问题,上图
这段代码主要是给图片添加水印
后来百度发现可能是图片的路径出了问题,因为是动态获取的图片地址,然后我把地址打印出来了
之后通过终端查看,果然没有
之后我在classes目录找到了文件
这时焕然大悟
因为我的图片文件一开始是放在main文件夹的resources文件夹中的,在文件编译时,会被放在classes文件夹中。。
然而我的测试代码是运行在test文件夹的,test文件夹中的resources文件夹中的内容会被放在test-classes文件夹。
代码中动态获取路径时是基于当前运行的代码位置,所以获取的路径为/Users/huang/IdeaProjects/o2o/target/test-classes/watermark.png,但图片被编译后放在了/Users/huang/IdeaProjects/o2o/target/classes/watermark.png中,所以报错找不到文件
解决方法:
我采用了比较粗暴的方式,将图片复制一份到test/resources中,编译时图片就会被放到/Users/huang/IdeaProjects/o2o/target/test-classes路径下,问题解决。
javax.imageio.IIOException: Can't read input file!完美解决
原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/12079371.html
时间: 2024-10-04 17:20:47