我有一个sikuli代码,它在Sikuli IDE上运行良好。然后我将其转换为.skl
文件。当我运行.skl
时,它会抛出30-40行错误,当我在Sikuli IDE上运行实际的sikuli程序时它运行良好。我的系统中没有Python IDLE,而且我得到的错误是
由于前22行不可见,我将其贴在下面: -
Runtime Error when running C:\DOCUME~1\t6-test\LOCALS~1\Temp\tmp-664999291.sikuli\test.sikuli
Traceback (most recent call last):
File "<string>",line 1,in <module>
File "C:\Program Files\Sikuli X\sikuli-script.jar\Lib\sikuli\_init_.py",line 3, in <module>
File "C:\Program Files\Sikuli X\sikuli-script.jar\Lib\sikuli\sikuli.py", line 26, in <module>
java.lang.UnsatisfiedLinkError:C:\Program Files\Sikuli X\libs\Win32Util.dll:Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at com.wapmx.nativeutils.jniloader.NativeLoader.loadLibrary(NativeLoader.java:44)
at org.sikuli.script.Win32Util.<clinit>(Win32Util.java:19)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.sikuli.script.Env.getOSUtil(Env.java:91)
at org.sikuli.script.App.<clinit>(App.java:9)
at java.lang.class.forName0(Native Method)
at java.lang.class.forName(Unknown Source)
at org.python.core.Py.loadAndInitClass(Py.java:895)
at org.python.core.Py.findClassInternal(Py.java:830)
at org.python.core.Py.findClassEx(Py.java:881)
屏幕上可见的其余部分如下: -
我的代码是: -
popup("Hello")
print("Hello")
我正在使用windows xp os和sikuli r930。另一件事是我在另一个具有相同os和sikuli版本的文件中运行相同的.skl
文件。但是该代码在该系统中运行良好。谁能告诉我哪里出错了?
答案 0 :(得分:1)
我建议根据Sikuli官方手册运行skl脚本:http://doc.sikuli.org/faq/010-command-line.html这意味着它应该使用命令行完成。
要解决您的问题,请打开控制台窗口并输入类似内容(根据您的设置更改目录路径):
"c:\Program Files\Sikuli X\Sikuli-IDE.bat" -r "c:\sikuli\someScript.skl"
我从未通过双击启动skl脚本。我总是使用批处理文件启动它们(实际上批处理脚本由其他非sikuli脚本调用)。
答案 1 :(得分:0)
---正如您在启动板问题上建议的那样:
错误图片不完整。
你说,当使用建议使用Sikuli-IDE.bat运行.skl时,你会得到同样的错误。
启动时会遇到一些Java异常。错误消息和堆栈跟踪显示在弹出窗口中,该窗口不显示所有行且不可滚动。
要获取完整信息,请告知IDE,将所有内容打印到命令行窗口。
这就是你告诉它的方式: - 在编辑器中打开Sikuli-IDE.bat的副本 - 在线上,调用java并使用-X,-D,-jar选项添加以下选项(在-jar选项之前) -Dsikuli.console = FALSE - 注意,这个修改过的Sikuli-IDE.bat(使用不同的名字;-)可以在Sikuli X程序文件夹中找到 - 使用它来运行.skl,就像使用原始SIKULI-IDE.bat一样运行
这应该在命令行窗口中打印完整的错误/堆栈跟踪信息。 PLS。在网上以某种方式提供检查。
答案 2 :(得分:0)
右键单击.skl文件。转到属性。更改打开使用默认路径到Sikuli-IDE.exe所在的位置。在我的情况下,它是D:\ Sikuli X \ Sikuli-IDE.exe
现在双击.skl文件,它将运行。
可替换地,
转到命令行,
类型: -
C:\ Windows \ System32&gt;“D:\ Sikuli X \ Sikuli-IDE.exe”-r D:\ picapica.skl
答案 3 :(得分:0)
RightClickyour可执行SKL文件 - &gt;选择Proprities - &gt;用Sikuli-IDE.bat打开 (它将使用正确的jre配置启动IDE)它在我的最终完美工作(你可以看到来自java控制台的日志)