Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 运行junit时引用jar文件中的图像_Java_Junit - Fatal编程技术网

Java 运行junit时引用jar文件中的图像

Java 运行junit时引用jar文件中的图像,java,junit,Java,Junit,我一直在考虑使用ImageMagic(im4java)将已知的良好页面呈现与存储的良好页面进行比较 我已经在一个测试站点上完成了这项工作,但是我所有的图像(好的、坏的和不同的)都存储在我的c:\temp文件夹中。我一直在考虑将“预期的”图像保存在项目文件夹结构中,这样当项目签出时,预期的图像就在那里了 (并不是说这是一个很好的解决方案,这只是我一直在玩的东西。) 所以我的测试存储在 /src/test/java/my.screen.test/compareTest.java 我有我的“预期”形象

我一直在考虑使用ImageMagic(im4java)将已知的良好页面呈现与存储的良好页面进行比较

我已经在一个测试站点上完成了这项工作,但是我所有的图像(好的、坏的和不同的)都存储在我的c:\temp文件夹中。我一直在考虑将“预期的”图像保存在项目文件夹结构中,这样当项目签出时,预期的图像就在那里了

(并不是说这是一个很好的解决方案,这只是我一直在玩的东西。)

所以我的测试存储在 /src/test/java/my.screen.test/compareTest.java 我有我的“预期”形象 /masterImages/test.png

我尝试了各种方法来引用这一点:

我在构建路径中包含masterImages,然后尝试使用 InputStream input=getClass().getResourceAsStream(“/masterImages/googleHomePage1.png”) (然后我认为我可以简单地使用input.toString()将其传递到im4java中——但InputStream给了我nullpointer异常) 我还尝试从构建路径中删除masterImages并以这种方式进行尝试

我也试过了 字符串路径=getClass().getClassLoader().getResource(“masterImages/googleHomePage1.png”).toString() 同样,空指针。我知道有些愚蠢的事情我没有在这里看到,就像我说的,这是从我踢球开始的,但现在我很恼火为什么我不能让它工作

非常感谢您对我所缺少的任何见解。

来自-

它确实很简单:在
java.lang.Class
java.lang.ClassLoader
中使用各种
getResource()
方法。例如,在你的应用程序中,你可以只写

treeURL = getClass().getResource("/images/tree.png");

这将在jar文件根目录下的images目录中找到该文件。
getResource()
方法的优点在于,无论文件是否在jar中,它们都可以工作——如果images目录是磁盘上的真实目录,这仍然可以工作(只要images的父目录是类路径的一部分)。

多亏了大家。我想我已经整理好了。事实证明,我必须将包含该图像的文件夹添加到类路径中——我错误地认为,由于我有masterImages/otherFolderName,如果我包含masterImages,otherFolderName中的任何文件都将被包括在内。事实证明情况并非如此(至少对我来说是这样。)

您是否正在对.jar文件中的类执行“getClass()”?我已经尝试了这段代码,但仍然收到相同的错误。我有以下内容:URL treeURL=getClass().getResource(“/masterImages/googleHomePage1.png”);仍然从eclipse中获取空指针。windows文件系统有什么奇怪的地方需要注意吗?有趣的是,我只是在上面的一行上放了一个断点,当我检查treeURL的内容时,它显示为null(我猜null指针是有效的)-现在我想知道为什么了