【发布时间】:2015-10-28 14:53:21
【问题描述】:
使用 sikulixapi 1.1.0 在 Java 中试用 Sikuli,但找不到我的图像文件。
screen.click("images/Terminal.png");
Maven(阴影)按预期将我的 src/main/resources/images 放入 JAR 的顶级“images”目录中。但是运行 uberjar 并没有找到图片。
~/hello $ java -cp target/hello.jar hello.TestSikuli
[error] Image: could not be loaded: file://Users.../hello/images/Terminal.png
它在当前目录(恰好是项目目录)中查找,而不是在 JAR 中。我在程序中打印出了imagePath,它是一个空数组。
我如何获取它(可能使用 imagePath.add?)来搜索调用的 JAR? 我原以为它会默认显示在那里。
我尝试的另一件事:
URL u = this.getClass().getClassLoader().getResource("images/Terminal.png");
Region r = screen.find(u);
但这会爆炸;如果我传递一个如此处所示的 URL,我会得到“无效参数”;如果我通过 .toString,我得到:
FindFailed: Region: doFind: Image not loadable:
jar:file:/Users/.../Sikulix/j/hello/target/hello-1.0-SNAPSHOT.jar!/images/Terminal.png
Sikluix 中好像没有流输入接口,所以这可能就是做不到。
【问题讨论】: